Java进阶之旅第六天
Stream流
Stream的思想
- Stream流中引入函数式编程的思想,以类似流水线的方式处理数据,使得代码更加高效整洁
- Stream中提供并行处理的能力,可以将数据分成多个子任务,并行处理
各类型的调用方法
类型 |
方法 |
说明 |
单列集合 |
default Stream stream |
Collection中默认的方法 |
双列集合 |
无(需要转成单列结合后使用 |
无法直接使用stream流 |
数组 |
public static Stream stream(T[] array) |
Arrays工具类的静态方法 |
一堆零散的数据 |
public static Stream of(T…values) |
Stream接口中的静态方法 |
- Stream接口中静态方法of的细节:
- 1.方法的形参是一个可变参数,可以传递一堆零散的数据,也可以传递数组
- 2.但是数组必须是引用数据类型的,如果传递基本数据类型,是会把整个数组当做一个元素,放到Stream当中
代码演示
System.out.println("----单列集合---");
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(3);
list.add(2);
list.stream().forEach(s-> System.out.println(s));
System.out.println("----双列集合---");
HashMap<String,Integer> hm = new HashMap<>();
hm.put("1",2);
hm.put("2",1);
hm.put("3",3);
hm.keySet().stream().forEach(s-> System.out.println(s));
hm.entrySet().stream().forEach(s-> System.out.println(s));
System.out.println("----数组---");
int[] arr1 = {
1,2,3};
Arrays.stream(arr1).forEach(s-> System.out.println(s));
System.out.println("----零散的数据---");
Stream.of(1,2,3,4).forEach(s-> System.out.println(s));
System.out.println("----细节1----");
String[] arr2 = {
"1",