Java之Stream流的收集
收集Stream流的含义:
就是把Stream流操作后的结果数据转到集合或者数组中去。
Stream流只是方便操作集合/数组的手段。
集合/数组才是开发中的目的。
Stream流的收集方法
名称 | 说明 |
---|---|
R collect(Collector collector) | 开始收集Stream流,指定收集器 |
Collectors工具类提供了具体的收集方式
名称 | 说明 |
---|---|
public static <T> Collector toList() | 把元素收集到List集合中 |
public statci <T> Collector toSet() | 把元素收集到Set集合中 |
public static Collector toMap(Function ketMapper,Function valueMapper) | 把元素收集到Map集合中 |
代码实现
public class StreamDemo05 { public static void main(String[] args) { List<String> list = new ArrayList<>(); Collections.addAll(list , "张文君","张文俊","周文君","周三","李达","张俊"); Stream<String> s1 = list.stream().filter(s->s.startsWith("张")); List<String> zhangList = s1.collect(Collectors.toList()); // List<String> zhangList = s1.toList();//从jdk16开始支持,得到不可变集合 System.out.println(zhangList); //注意:流只能使用一次。 Stream<String> s2= list.stream().filter(s->s.startsWith("张")); Set<String> zhangSet = s2.collect(Collectors.toSet()); System.out.println(zhangSet); //收集成数组 Stream<String> s3= list.stream().filter(s->s.startsWith("张")); // Object[] arrs = s3.toArray(); // String[] arrs = s3.toArray(new IntFunction<String[]>() { // @Override // public String[] apply(int value) { // return new String[4]; // } // }); String[] arrs = s3.toArray(String[]::new); System.out.println("数组Arrays内容:"+ Arrays.toString(arrs)); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix