得益于lamda所带来的函数式编程,引入一个全新的stream流概念。
目的:用于简化集合和数组操作的API

List<String> names=new ArrayList<>();
Collection.addAll(names,"张三","张哈哈”,"巴拉哈");
names.stream().filter(s->s.startsWith("张")).filter(s-s.length()==3).forEach(s->System.out.println(s));



public static void main(String[] args) {
List<String> list=new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("张强");
list.add("张三丰");
list.add("张三丰");
//得到全部姓张的人
list.stream().filter(s->s.startsWith("张")).forEach(s->System.out.println(s));
long size=list.stream().filter(s->s.length()==3).count();
System.out.println(size);
//得到前两个姓张的人
list.stream().filter(s->s.startsWith("张")).limit(2).forEach(s->System.out.println(s));
//跳过第二个姓张的,即跳过张强
list.stream().filter(s->s.startsWith("张")).skip(2).forEach(s->System.out.println(s));
//加工
list.stream().map(s->"黑马"+s).forEach(s->System.out.println(s));
//合并流
Stream<String> s1=list.stream().filter(s->s.startsWith("张"));
Stream<String> s2=Stream.of("java1","java2");
Stream<String> s3=Stream.concat(s1,s2);
s3.forEach(s->System.out.println(s));
}
案例:
收集Stream流:把stream流操作后的数据结果转回到集合或数组中去


浙公网安备 33010602011771号