日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pojo类中list存储其他字段_List集合流处理类型小结

發布時間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pojo类中list存储其他字段_List集合流处理类型小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為博主原創,未經允許不得轉載

對應實體類

importlombok.Getter;importlombok.Setter;

@Getter

@Setterpublic classStudent {privateString name;private intage;privateString className;privateString birthday;

}

1.根據字段取出某一個字段屬性的集合

List studentList = new ArrayList<>();

List newList =studentList.stream().map(Student::getAge).collect(Collectors.toList());for(Student student : newList) {

System.out.println(student.getName()+"---"+student.getAge());

}

2。List根據某個字段升序排序

List studentList = new ArrayList<>();

List newList =studentList.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());for(Student student : newList) {

System.out.println(student.getName()+"---"+student.getAge());

}

3.List根據某個字段排序降序

List list = new ArrayList<>();

list= list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());

4.獲取某一字段屬性值對應的數據集合

List resultList =studentList.stream()

.filter((Student stu)->area.equals(stu.getAge()))

.collect(Collectors.toList());

5.根據某個字段值獲取出對應的對象

Student stu =studentList.stream()

.filter(p-> "2018-08-12 12:10".equals(p.getBirthday()))

.findAny().orElse(null);

6.對集合元素去重

List nameList = new ArrayList<>();

nameList= nameList.stream().distinct().collect(Collectors.toList());

7.對集合某一個屬性進行求和

List stuList = new ArrayList<>();double totalAge = stuList.stream().collect(Collectors.summingDouble(Student::getAge));

8。獲取集合中的某一個屬性的數據集合并去重

// 所有的ip信息對象集合

List netInfoList =netIpService.queryNetIpList();

// 從所有IP信息對象集合中根據機房id過濾出所有機房id不同的數據對象,并根據機房id去重

List distinctIpRoomList =netInfoList.stream().collect(Collectors

.collectingAndThen(Collectors.toCollection(()-> new TreeSet<>(

Comparator.comparing(NetiIpInfo::getIpRoomId))), ArrayList::new));

代碼是很簡答,很優雅的

解釋一下

list.stream(): 是把list集合轉化為stream集合

sorted(): 進行排序,其中Comparator.comparing(Student::getAge)表示按照年紀排序,

.reversed()表示是逆序,因為默認情況下,不加.reversed 是升序的

collect(Collectors.toList()): 再次將排序后的stream集合轉化為list集合

.findAny()表示將其中任意一個返回;

.orElse(null)表示如果一個都沒找到返回null

distinct() 對集合元素或對象去重

summingDouble() 對集合元素進行求和為double類型數據

總結

以上是生活随笔為你收集整理的pojo类中list存储其他字段_List集合流处理类型小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。