個人記錄
由於本人用的也不是很精通,所有做個記錄,方便查閱
快速處理集合 | Java8 新特性 好用的 Stream 表達式
好用在哪?
準備工作,
一、從List 對象獲取單個對象的某個字段的值
以上新的coinList就是list中每個AllCoinEntity對象的coin字段的值
二、List轉map
Map<String, Long> collect = coinList.stream().collect(Collectors.toMap(AllCoinEntity::getCoin, AllCoinEntity::getId));
得到的map即是以coin爲key,主鍵id爲value的map對象
三、排序
- achievementList:爲成績集合
- Achievement:成績實體
- score分數爲BigDecimal類型
List<Achievement> achievement1 = achievementList.stream().sorted(Comparator.comparing(Achievement::getScore)).collect(Collectors.toList());//根據分數排序 -- 順序
List<Achievement> achievement2 = achievementList.stream().sorted(Comparator.comparing(Achievement::getScore).reversed()).collect(Collectors.toList());//根據分數排序 -- 倒序
注意:如果getScore方法裏面有空值,需提前判斷並設置爲"",不然會包空指針異常
可參考:
- https://cloud.tencent.com/developer/article/1187831 Stream(上)
- https://cloud.tencent.com/developer/article/1187833 Stream(下)
- http://www.runoob.com/java/java8-streams.html 菜鳥教程