Stream流的收集操作
1 package LambdaTest.LambdaTest06; 2 3 import java.util.*; 4 import java.util.stream.Collectors; 5 import java.util.stream.Stream; 6 7 /** 8 * FileName: StreamEndedDemo 9 * Author: lps 10 * Date: 2022/4/10 14:00 11 * Sign:刘品水 Q:1944900433 12 * <p> 13 * <R,A> R collect(Collector<? super T,A,R> collector) 14 * 执行 mutable reduction操作对元素的使用 Collector流。 15 * <R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner) 16 * 执行该流的元素 mutable reduction操 17 */ 18 public class StreamEndedDemo { 19 public static void main(String[] args) { 20 List<String> list = new ArrayList<>(); 21 list.add("刘品水"); 22 list.add("张伟"); 23 list.add("刘强军"); 24 list.add("朱迁民"); 25 26 //得到名字为三个字的流 27 Stream<String> threelist = list.stream().filter(s -> s.length() == 3); 28 //把此数据收集到list中遍历 29 List<String> names = threelist.collect(Collectors.toList()); 30 for (String name : names) { 31 System.out.println(name); 32 } 33 System.out.println("======="); 34 35 HashSet<Integer> set1 = new HashSet<>(); 36 set1.add(10); 37 set1.add(12); 38 set1.add(20); 39 set1.add(22); 40 set1.add(29); 41 //得到大于18的流 42 Stream<Integer> setstream = set1.stream().filter(age -> age > 18); 43 //将此数据收集到set集合并遍历 44 Set<Integer> age = setstream.collect(Collectors.toSet()); 45 for (Integer a : age) { 46 System.out.println(a); 47 } 48 System.out.println("======="); 49 50 String[] strArray = {"刘品水,21", "张伟,20", "朱迁民,22", "刘子衿,3"}; 51 //得到年纪大于20的流 52 Stream<String> arraystream = Stream.of(strArray).filter(s -> Integer.parseInt(s.split(",")[1]) > 20); 53 //把上面的内容 收集到map集合当中 姓名做键 年龄做值 54 Map<String, Integer> map = arraystream.collect(Collectors.toMap(s -> s.split(",")[0], 55 s -> Integer.parseInt(s.split(",")[1]))); 56 Set<String> keyset = map.keySet(); 57 for (String key : keyset) { 58 Integer value = map.get(key); 59 System.out.println(key + "," + value); 60 61 } 62 63 64 } 65 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix