Java8 中添加了一个新的接口类 Stream,相当于高级版的 Iterator,通过 Lambda 表达式对集合进行各种非常便利、高效的聚合操作(Aggregate Operation),或者大批量数据操作 (Bulk Data Operation)。Stream不仅可以通过串行的方式实现数据操作,还可以通过并行的方式处理大批量数据,提高数据的处理效率。
如何建流
1.集合转流
@Test
//集合转流
public void test2(){
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("a");
Stream<String> stream = list.stream();
stream.filter((a)->{return a.contains("A");}).filter((u)->{return !(u.isEmpty());}).forEach(System.out::println);
}
2.数组转流
@Test
//数组转流
public void test3(){
int[] arr = new int[]{1,2,3,4};
IntStream stream = Arrays.stream(arr);
stream.filter((u)->{return u%2 == 1;}).forEach(System.out::println);
}
3.流的of方法造流
@Test
//流的of方法
public void test4(){
Stream<Integer> stream = Stream.of(1, 2, 3, 4);
stream.filter((u)->{return u%2 == 0;}).forEach(System.out::println);
}
4.造无限流和生成流
@Test
//无线流,生成流
public void test5(){
Stream.iterate(0,(t)->{return t+2;}).limit(10).forEach(System.out::println);
Stream.generate(Math::random).limit(10).forEach(System.out::println);
}