JDK8新特性,stream相关操作。把集合转换成stream,再对其进行相关操作,加上lambada表达式。
demo:
List<String> list = Arrays.asList("a","b"); //所有实现了Conllection的类型都可以使用 String str = list.stream().map(x->{ try { return x+" and "+x; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return ""; } }).collect(Collectors.joining("\n")); // collect 收集器,把处理过的元素都手机起来,Collectors.joining("\n") 是用"\n"(换行符) 分开,也可以用别自己需要的
System.out.println(str);
执行结果:
a and a b and b
集合元素分组收集,用字符串长度进行分组:
List<String> list = Arrays.asList("abc","bb","cc","a"); Map<Integer, List<String>> collect = list.stream().collect(Collectors.groupingBy(String::length)); System.out.println(collect.toString());
执行结果:
{1=[a], 2=[bb, cc], 3=[abc]}
集合的forEach:
List<String> list1 = Arrays.asList("abc","bb","cc","a"); list1.forEach(x->{ System.out.println(x.length()); //输出每个元素的长度 });
执行结果:
3 2 2 1
时间: 2024-09-29 16:26:02