JDK8集合的便捷操作
阿新 • • 發佈:2017-09-06
ini try pre 換行符 generated nbsp ada array lock
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
JDK8集合的便捷操作