如今已經出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學習