1.前言 Java 8提供了非常好用的Stream API,可以很方便的操作集合。今天我们来探讨两个Stream中间操作map(Function<? super T, ? extends R> mapper)和flatMap(Function<? super T, ? extends Stream<? extends R>> mapper) 2. map 操作 map操作是将流中的元素进行再次加工形成一个新流。这在开发中很有用...
List<Integer> list = Arrays.asList(7, 6, 9, 3, 8, 2, 1);//遍历输出符合条件的元素list.stream().filter(x -> x > 6).forEach(System.out::println);//匹配第一个Optional<Integer> findFirst = list.stream().filter(x -> x > 6).findFirst();//匹配任意(适用于并行流)Optional<Integer...
当然,您也可以使用StreamAPI按其值对Map进行排序: 代码语言:javascript 复制 Map<String,Integer>sortedMap2=codes.entrySet().stream().sorted(Map.Entry.comparingByValue()).collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue,(oldVal,newVal)->oldVal,LinkedHashMap::new));sortedMap2.entrySe...
Java8 中的 Arrays 的静态方法 stream() 可以获取数组流 :static Stream stream(T[] array) : 返回一个流 重载形式,能够处理对应基本类型的数组IntStream/LongStream/DoubleStream : 由值创建流 可以使用静态方法 Stream.of(), 通过显示值创建一个流,它可以接收任意数量的参数:public static Stream of(T… val...
使用Stream API Map 的 keySet() 方法返回的是一个 Set 数据结构,在之前的章节已经讲过,它实现了 Iterable 接口,且提供了获取 Iterator 的方法,所以这里三种遍历的 Set 方式我们在之前Set 的章节都已经细讲过,这里直接看一下遍历的例程。 Map<String, String> map = new HashMap<>(); map.put("one", "...
map(Function f) 接收 Lambda , 将元素转换成其他形式或提取信息;接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 mapToDouble(ToDoubleFunction f) 接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 DoubleStream。
Java 的并行 API 演变历程基本如下: 1.0-1.4 中的 java.lang.Thread 5.0 中的 java.util.concurrent 6.0 中的 Phasers 等 7.0 中的 Fork/Join 框架 8.0 中的 Stream Stream 的另外一大特点是,数据源本身可以是无限的(即无限流)。 对流的操作概述
这一篇是上一篇的续写,为了不让篇幅太长,所以分开写了,如果没看过的可以去看看强大的Stream API(二) Stream的(filter,limit,skip,map)等中间操作之一,接下来就继续了。 sorted() 产生一个新流,其中按自然顺序排序 sorted(Comparator comp) 产生一个新流,其中按比较器顺序排序 ...
for(fruitinlist){ if(fruit.length>maxLengthFruit.length){ maxLengthFruit=fruit } } println("max lenth fruit is "+maxLengthFruit) 1. 2. 3. 4. 5. 6. 7. 8. 运行结果 如果我们使用集合的函数式API,可以让这个功能更简单 vallist=listOf("Apple","Banana","Orange","Pear","Grape","Watermelo...
java 8 stream api 中有两个方法map和flatMap非常实用,应用场景也非常广泛,能极大提升编程效率。下面我们详细介绍一下这两个方法的用法。 map方法 我们来看个示例:把一个整数列表转换成字符串列表,java 8之前常用的实现方法如下 List<Integer>numList=Arrays.asList(1,2,3,4,5,6,7,8);List<String>strList...