JavaSE-23.2.5Stream流的收集操作
Posted yub4by
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE-23.2.5Stream流的收集操作相关的知识,希望对你有一定的参考价值。
1 package day14.lesson2; 2 3 import java.util.*; 4 import java.util.stream.Collectors; 5 import java.util.stream.Stream; 6 7 /* 8 2.6 Stream流的收集操作 9 10 对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中 11 12 Stream流的收集方法 13 R collect(Collector collector) 把结果收集到集合中,参数是一个Collector接口 14 15 工具类Collectors提供的具体的收集方式 16 public static Collector toList() 把元素收集到List集合中 17 public static Collector toSet() 把元素收集到Set集合中 18 public static Collector toMap(Function keyMapper,Function valueMapper) 把元素收集到Map集合中 19 */ 20 public class Demo6Collect { 21 public static void main(String[] args) { 22 ArrayList<String> list = new ArrayList<>(); 23 list.add("林青霞"); 24 list.add("张曼玉"); 25 list.add("王祖贤"); 26 list.add("柳岩"); 27 28 //需求1:获取长度为3的元素,组成一个流 29 Stream<String> listStream = list.stream().filter(s -> s.length() == 3); 30 //需求2:把使用Stream流操作完毕的数据收集到list集合中,并遍历 31 List<String> names = listStream.collect(Collectors.toList()); 32 for (String name: names){ 33 System.out.println(name); 34 } 35 System.out.println(); 36 37 Set<Integer> set = new HashSet<>(); 38 set.add(10); 39 set.add(20); 40 set.add(30); 41 set.add(33); 42 set.add(35); 43 44 //需求3:获取年龄大于25的元素,组成一个流 45 Stream<Integer> setStream = set.stream().filter(s -> s > 25); 46 //需求4:把使用Stream流操作完毕的数据收集到set集合中,并遍历 47 Set<Integer> ages = setStream.collect(Collectors.toSet()); 48 for (Integer age: ages){ 49 System.out.println(age); 50 } 51 System.out.println(); 52 53 String[] strArray = {"林青霞,30", "张曼玉,35", "王祖贤,33", "柳岩,25"}; 54 55 //需求5:获取数组中年龄大于28的元素,组成一个流 56 Stream<String> arrayStream = Stream.of(strArray).filter(s -> Integer.parseInt(s.split(",")[1]) > 28); 57 //需求6:把使用Stream流操作完毕的数据收集到Map集合中,并遍历;要求:姓名作为键、年龄作为值 58 Map<String, Integer> map = arrayStream.collect(Collectors.toMap( 59 s -> s.split(",")[0], 60 s -> Integer.parseInt(s.split(",")[1]) 61 )); 62 Set<String> keySet = map.keySet(); 63 for (String key: keySet){ 64 Integer value = map.get(key); 65 System.out.println(key + "," + value); 66 } 67 68 } 69 }
以上是关于JavaSE-23.2.5Stream流的收集操作的主要内容,如果未能解决你的问题,请参考以下文章