1. 程式人生 > >JDK8集合的便捷操作

JDK8集合的便捷操作

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集合的便捷操作