赞
踩
目的:用于简化集合和数组操作的API,结合了Lambda表达式
- //1.得到集合的Stream流对象,再使其封装
- Stream<String> stream = list.stream();
- //2.过滤数据
- stream.filter(s -> s.startsWith("张")).filter(s -> s.length() == 3).forEach(s -> System.out.println(s));
- //3.统计数据
- long size = list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3).count();
- System.out.println(size);
- //4.取前几个,跳过前几个元素
- list.stream().limit(2).forEach(s->System.out.println(s));
- list.stream().skip(2).forEach(s->System.out.println(s));
- //5.map加工法
- //需求:把所有人的名字前面加上一个ypp
- list.stream().map(s->"ypp:"+s).forEach(s->System.out.println(s));
-
- list.stream().map((s->new Student(s))).forEach(s->System.out.println(s));
- //6.concat合并流
- Stream<String> s1=list.stream();
- List<String> l1=new ArrayList<>();
- Stream<String> s2=l1.stream();
- Stream<String> concat = Stream.concat(s1,s2);

含义:把Stream流操作后的结果数据转回到集合和数组中去
Stream流:方便操作集合/数组的手段
集合/数组:才是开发的目的
Stream流的收集方法:
- List<String> l1 = new ArrayList<>();
- l1.add("张三");
- l1.add("张三");
- l1.add("张三");
- l1.add("李四");
- l1.add("王五");
- l1.add("赵六");
- l1.add("张六流");
- Stream<String> s1 = l1.stream().filter(s->s.startsWith("张"));
- System.out.println(s1);
- //List<String> list = s1.toList();
- //System.out.println(list);
- //把Stream流转换为可变的list的集合
- List<String> collect = s1.collect(Collectors.toList());
- collect.add("王五");
- System.out.println(collect);
- //收集成Set集合
- Stream<String> s2 = l1.stream().filter(s->s.startsWith("张"));
- Set<String> name1=s2.collect(Collectors.toSet());
- name1.add("111");
- System.out.println(name1);
- //收集成数组
- Stream<String> s3=l1.stream().filter(s->s.startsWith("张"));
- String[] arr2=s3.toArray(s->new String[s]);
- System.out.println("内容是"+ Arrays.toString(arr2));

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。