Java 8引入了两个可以用于IntStream和LongStream的静态方法,帮助生成这种范围:range和rangeClosed。这两个方法都是第一个参数接受起始值,第二个参数接受结束值。 range 是不包含结束值的,而 rangeClosed 则包含结束值. //表 示范围[1, 100] IntStream evenNumbers = IntStream.rangeClosed(1, 100) .filter(n ...
Collection接口的stream()或parallelStream()方法 静态的Stream.of()、Stream.empty()方法 Arrays.stream(array, from, to) 静态的Stream.generate()方法生成无限流,接受一个不包含引元的函数 静态的Stream.iterate()方法生成无限流,接受一个种子值以及一个迭代函数 Pattern接口的splitAsStream(input)方法 静态的Files....
IntStream.of(new int[]{1, 2, 3}).forEach(System.out::println);IntStream.range(1, 3).forEach(System.out::println);IntStream.rangeClosed(1, 3).forEach(System.out::println);清单 6. 流转换为其它数据结构 // 1. ArrayString[] strArray1 = stream.toArray(String[]::new);// 2. Col...
Java 8 中还没有提供其它数值型 Stream,因为这将导致扩增的内容较多。而常规的数值型聚合运算可以通过上面三种 Stream 进行。 数值流的构造: 代码语言:javascript 复制 IntStream.of(new int[]{1, 2, 3}).forEach(System.out::println); IntStream.range(1, 3).forEach(System.out::println); IntStream...
为啥是包含了3,但是不包含8呢?看下range()的具体实现: 另外从这个例子中有木有体会到使用了Stream之后的便捷性,如果照传统的方式生成那得弄一个循环了,而使用了Stream之后一句话搞定。 那如果也想包含后面的元素呢?其实也有现成的方法,如下: 其看一下该方法的参数名就可以知晓确实是包含结束元素: ...
IntStream.of(3,1,4,9).forEach(System.out::println); 在IntStream中有range和rangeClosed二个方法,接收二个参数,代表着一个整数区间范围,range表示不包含最后一位,rangeClosed表示包含最后一位。 IntStream.range(1,4).forEach(System.out::println); ...
package com.morris.java8.parallel; import java.util.concurrent.TimeUnit; import java.util.stream.IntStream; public class ParallerDemo { public static void main(String[] args) { IntStream list = IntStream.range(0, 6); //开始并行执行
IntStream.rangeClosed(1,5).forEach(System.out::println); //变大写 List<String> collect = list.stream().map(String::toUpperCase).collect(Collectors.toList()); collect.stream().forEach(System.out::println); } 1. 2. 3. 4. 5.
range(1, 3); // 输出 1,2IntStreamintStream=IntStream.rangeClosed(1, 3); // 输出 1,2,3// 生成一个等差数列IntStream.iterate(1, i->i+3).limit(5).forEach(System.out::println); // 输出 1,4,7,10,13// 生成无限常量数据流IntStreamgenerate=IntStream.generate(() ->10).limit(3)...
Java8: List<String> lowCaloricDishesName = menu.stream() .filter(d -> d.getCalories() < 400) //选出400卡路里以下的菜肴 .sorted(Comparator.comparing(Dish::getCalories)) //按照卡路里排序 .map(Dish::getName) // 提取菜肴的名称 .collect(Collectors.toList()); //将所有名称保存在list中 ...