循环foreach造列表对数据操作繁琐,用list的stream,stream!

it2023-06-14  71

比如list中有好多名字,现需要过滤。取开头为张,长度为3条件。

传统的写法:

public void a(){ List<String> l= new ArrayList<>(); List<String> l1 = new ArrayList<>(); List<String> l2 = new ArrayList<>(); l.add("张一一"); l.add("李二二"); //先找张开头的 for(String s : l){ if (s.startsWith("张")){ //开头为张,将其存进新列表 l1. l1.add(s); } } //找长度为三的 for (String ss: l1){ if (ss.length()==3){ l2.add(ss); } } for ( String sss: l2){ System.out.println(sss); }

项目经理!!!

List<String> l= new ArrayList<>(); l.add("张一一"); l.add("李二二"); //用stream流,它的实现是常用函数接口实现如:predict,function。 l.stream().filter(s->s.startsWith("张")) //这里加{}大括号会报错,是因为返回值类型。stream返回bolean类型。这里不需要返回 //上面错了,是因为大括号中没有return ,加个return就好了。 .filter(s->s.length()==3) .forEach(s-> System.out.println(s));

数组 列表 map 都可以转换为流,Stream .of() 里面传参数。 方法有filter,foreach,skip(跳过前几个),map(转换类型)limit(取前几个),concat(连接两个流)

最新回复(0)