java8 lambda表達式應用--獲取數組中重複的數據

  如今已經出java 10了。以前趁java8出來的那段時間學習了lambda表達式,最近項目中須要用到在數組中尋找重複數據,按照之前的思惟,就是寫循環!能解決這個問題,舊的技術確實能解決這個問題,但代碼行數和性能不必定有這麼好。這就是學習新技術的動力所在吧,否則總是用舊技術,總會有一天發現,舊技術解決不了的問題,而新技術只須要幾行代碼,這就尷尬了。html

獲取重複數據,第一步利用java8新特新獲取重複數據列表java

List<AimsHelperFarmerProperty> repeat=new ArrayList<AimsHelperFarmerProperty>(2);
//獲取數據與出現的次數           
Map
<AimsHelperFarmerProperty, Long> map = list.stream().collect(Collectors.groupingBy(p -> p,Collectors.counting())); //利用lambda遍歷map
map.keySet().forEach(key
-> { if(map.get(key) > one){ repeat.add(key); } });

 參考:數組

https://www.cnblogs.com/aoeiuv/p/5911692.html性能

https://blog.csdn.net/doubeizhucele/article/details/43796303學習

相關文章
相關標籤/搜索