java8

最新文章

Java 8使用Collections toMap实现List转换为Map

Collections提供了toMap()来实现集合转换为Map。方法如下:Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper) keyMapper:实现键的

Java Predicate接口的使用

Java 8新增了Predicate接口,它是一个函数接口,提供的test函数会接收一个参数,并返回一个bool值,我们可以用它来做过滤,检测类等功能。源码说明@FunctionalInterfacepublic interface Predicate<T> { /** * 具体过滤操作 需要被子类实现. * 用来处理参数T是否满足要求,可以理解为 条件A

Java 8 转换Stream为数组

Stream转换为数组最简单的方法是使用toArray(IntFunction<A[]> generator)Stream<String> streamString = Stream.of("a", "b", "c");String[] stringArray = streamString.toArray(String[]::new);String[]:new会接收Stre

Java 8忽略大小写排序字符串

假如有一个Student对象的列表students,现在需要对Student对象的name名字不区分大小写排序。方法一在java 8里可以使用列表的sort方法,也可以使用stream().sorted,并结合Comparator.comparing做排序List<Student> students = ...students.sort(Comparator.comparing(Stu

Java 8使用Collectors.partitioningBy分割列表

有这样一个集合:List<Integer> integers = [ 1,2,3,4,5,6,7,8,9] 现在需要把集合按奇偶数分割为两个列表。这种情况下,我们可以使用Collectors.partitioningBy来分割:Map<Boolean, List<Integer>> map =

Java 8使用parallel Stream测试StringBuilder线程安全

我们知道StringBuilder不是线程安全的,但如何证明它非线程安全呢?测试StringBuilder是否线程安全一个简单的思路如下:模拟多个线程并发向StringBuilder实例添加字符,最后检测builder.toString().length()的值是否为添加字符的次数,如果非线程安全会出现builder.toString().length()的值与添加字符的次数不一致。Java&nb

Java 8/9使用Stream获取字符出现在字符串的索引列表

需求是这样的:输入一个字符串和一个字符,返回此字符出现在字符串里的所有索引。可以使用for循环迭代字符串可以实现此需求。考虑了下java8和java9的实现方案。java 8使用IntStream的实现方案public static List<Integer> getIndexes(String s, char c)

Java 8双冒号::方法引用操作符

Java 8中,双冒号::称为方法引用操作符,我们可以使用它来引用类的方法。::引用类的方法,返回一个函数接口(function interface),这等同于lambda表达式,但与lambda表达式不同的是,lambda表达式需要自定义一个lambda body,而::引用的是一个方法。简单地说函数接口,就是只拥有一个抽象方法的接口,如Runnable。::引用方

Java8使用Lambda把List转换为Map

使用Java8的Collections可以很简便地把List转换为Map以User为例List里的User名字唯一Map<String, User> result =     users.stream().collect(Collectors.toMap(User::getName,   &nbs

Java 8避免Lambda表达式NullPointException的方法

方法一对于字符串的比较,使用非null的字符串的比较方法。projects   .stream()   .filter(project -> "Completed".equalsIgnoreCase(project.getStatus()))   .collect(Collectors.toL