- Stream关注的是对数据的运算,与CPU打交道
集合关注的是数据的存储,与内存打交道
- Stream 自己不会存储元素
- Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream
- Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行
- Stream 执行流程
- ①Stream的实例化
- ②一系列的中间操作(过滤、映射、。。。)
- ③终止操作
- 说明
- 一个中间操作链,对数据源的数据进行处理
- 一旦执行终止操作,就执行中间操作链,并产生结果。之后,不会再被使用。
public class StreamAPITest {
@Test
public void test1(){
List<Employee> employees=EmployeeData.getEmployees();
Stream< Employee > stream = employees.stream();
Stream< Employee > parallelStream = employees.parallelStream();
}
@Test
public void test2(){
int[] arr=new int[]{1,2,3,4,5};
IntStream stream = Arrays.stream(arr);
Employee e1=new Employee(1009,"Tom");
Employee e2=new Employee(1010,"BOB");
Employee[] arr1=new Employee[]{e1,e2};
Stream< Employee > stream1 = Arrays.stream(arr1);
}
@Test
public void test3(){
Stream< Integer > integerStream = Stream.of(1, 2, 3, 4);
}
@Test
public void test4(){
Stream.iterate(0,t->t+2).limit(10).forEach(System.out::println);
Stream.generate(Math::random).limit(10).forEach(System.out::println);
}
}