arry.stream().filter(s->s.length()==3).filter((String s)->{return s.startsWith("张");}).forEach(s-> System.out.println(s));
Stream流的生成操作
filter()过滤
limit()和skip()
ArrayList<String> arry=new ArrayList<>();
arry.add("张志清");
arry.add("王文兵");
arry.add("历史写");
arry.add("张三丰");
arry.add("和沙湾");
arry.add("张雪得分");
arry.add("佳世达");
//输出前三个元素
arry.stream().limit(3).forEach(s-> System.out.println(s));
System.out.println("-------");
//跳过前三个元素
arry.stream().skip(3).forEach(s-> System.out.println(s));
System.out.println("-------");
//跳过两个元素,再输出剩余元素的前三个元素
arry.stream().skip(2).limit(2).forEach(System.out::println);
concat()和distinct()
ArrayList<String> arry=new ArrayList<>();
arry.add("张志清");
arry.add("王文兵");
arry.add("历史写");
arry.add("张三丰");
arry.add("和沙湾");
arry.add("张雪得分");
arry.add("佳世达");
Stream<String> limit = arry.stream().limit(5);
Stream<String> skip = arry.stream().skip(3);
//将两个流合并到一块
//Stream.concat(limit, skip).forEach(s-> System.out.print(s+" "));//张志清 王文兵 历史写 张三丰 和沙湾 张三丰 和沙湾 张雪得分 佳世达
//将其中重复元素删除
Stream.concat(limit,skip).distinct().forEach(s-> System.out.print(s+" "));//张志清 王文兵 历史写 张三丰 和沙湾 张雪得分 佳世达
sort
arry.add("sfda");
arry.add("afdf");
arry.add("ewrewr");
arry.add("fdfsdf");
arry.add("fsdfsdv");
arry.add("fdsfdsfsdf");
arry.add("ddddfs");
//自然排序
//arry.stream().sorted().forEach(s-> System.out.print(s+" "));//afdf ddddfs ewrewr fdfsdf fdsfdsfsdf fsdfsdv sfda
//按照长度排序,长度一样按自然排序
arry.stream().sorted((s1,s2)->{
int num=s1.length()-s2.length();
if(num==0)
num=s1.compareTo(s2);
return num;
}).forEach(s-> System.out.print(s+" "));//afdf sfda ddddfs ewrewr fdfsdf fsdfsdv fdsfdsfsdf
}
map和maptoint方法
ArrayList<String> arry = new ArrayList<>();
arry.add("10");
arry.add("20");
arry.add("30");
arry.add("40");
arry.add("50");
arry.add("60");
arry.stream().map(s -> Integer.parseInt(s)).forEach(s -> System.out.println(s));
int i=arry.stream().mapToInt(s->Integer.parseInt(s)).sum();
System.out.println(i);//210