zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Stream流必会知识

2023-03-15 22:01:47 时间

哪些可以作为Stream流使用?

1 继承Collection的List和Set List<String> str = new ArraryList<>(); Stream<String> stream = str.stream(); 2 数组借助Stream.of(xx) Integer[] arr = {1,2,3,4}; Stream<Integer> array = Stream.of(arr); 3 Map是不行的,可以用他的keySet() valueSet() Map<String,String> maps = new HashMap(); Stream<String> strMap = maps.keySet().stream(); Stream<String> strMap = maps.values().stream();

Stream的常用方法有(结合lambda表达式)

1 forEach 会将每一个流元素交给该函数进行处理。用于遍历元素 2 filter() 筛选符合条件的流数据,对数据进行过滤 3 map 需要将流中的元素映射到另一个流或者转换为另一个类型时用 List<User> list = map.entrySet().stream() .sorted(Comparator.comparing(e -> e.getKey())) .map(e -> new User(e.getKey(),e.getValue())) .collect(Collectors.toList()); List<Person> collect2 = people.stream() .sorted((Comparator.comparing(Person::getAge)).reversed()) .collect(Collectors.toList());//只根据年龄排序,降序 4 sorted(): 用于对流进行排序 List<Person> collect1 =people.stream() .sorted((Comparator.comparing(Person::getAge))) .collect(Collectors.toList());//只根据年龄排序,升序 5 count() 返回过滤后剩下的数目 6 collect() 收集为什么元素 .collect(Collectors.toList()); .collect(Collectors.joining()); 7 toArray 将流转换为一个数组 8 reduce 它提供一个起始值,然后依照运算规则,和Stream 的第一个、第二个、第 n 个元素组合 Integer sum = integers.reduce(0, (a, b) -> a+b); 9 min、max求最大值最小值 10 distinct 去重 distinct操作是对流中的元素进行去重 11 limit 获取流中前n个元素返回