stream流的作用:结合Lambda表达式,简化集合、数组的操作
Stream使用步骤:
先得到一条Stream流,并将数据放上去
使用中间方法对流上的数据进行操作
使用终1结方法对流上的数据进行操作
一、获取流
单列集合:Stream是Collection中的默认方法
ArrayList<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
list.stream().forEach(s-> System.out.println(list));
双列集合:无法直接使用stream流,需要转换为单列集合
Map<String,String> map = new HashMap<>();
map.put("张三","1");
map.put("李四","2");
map.put("王五","3");
//获取key值
map.keySet().stream().forEach(System.out::println);
//获取键值对
map.entrySet().stream().forEach(System.out::println);
数组:Arrays工具类中的静态方法
int[] arr = {1,2,3,4,5,6};
Arrays.stream(arr).forEach(System.out::println);
零散数据:Stream接口中的静态方法of
//必须是同种数据类型
Stream.of(1,2,3,4,5,6).forEach(System.out::println);
二、Stream的中间方法
修改流中的方法不会影响原集合或数组中的数据
- filter:过滤
- limit:获取前几个元素
- skip:跳过前几个元素
- distinct:元素去重
- concat:合并两个流为一个流
- map:转换流中得到数据类型
三、终结方法
- forEach:遍历
- count:统计
- toArray:收集流中的数据,放到数组中
- collect:收集流中的数据,放到集合中
- anyMatch:判断的条件里,任意一个元素满足,返回true
- allMatch:判断的条件里,所有元素满足,返回true
- noneMatch:,判断条件里的元素,所有元素都不满足,返回true