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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 8 Stream API了解下

發布時間:2023/12/29 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 8 Stream API了解下 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Stream對象的創建

Stream對象分為兩種,一種串行的流對象,一種并行的流對象。

// permissionList指所有權限列表 // 為集合創建串行流對象 Stream<UmsPermission> stream = permissionList.stream(); // 為集合創建并行流對象 tream<UmsPermission> parallelStream = permissionList.parallelStream();Copy to clipboardErrorCopied

filter

對Stream中的元素進行過濾操作,當設置條件返回true時返回相應元素。

// 獲取權限類型為目錄的權限 List<UmsPermission> dirList = permissionList.stream().filter(permission -> permission.getType() == 0).collect(Collectors.toList());Copy to clipboardErrorCopied

map

對Stream中的元素進行轉換處理后獲取。比如可以將UmsPermission對象轉換成Long對象。 我們經常會有這樣的需求:需要把某些對象的id提取出來,然后根據這些id去查詢其他對象,這時可以使用此方法。

// 獲取所有權限的id組成的集合 List<Long> idList = permissionList.stream().map(permission -> permission.getId()).collect(Collectors.toList());Copy to clipboardErrorCopied

limit

從Stream中獲取指定數量的元素。

// 獲取前5個權限對象組成的集合 List<UmsPermission> firstFiveList = permissionList.stream().limit(5).collect(Collectors.toList());Copy to clipboardErrorCopied

count

僅獲取Stream中元素的個數。

// count操作:獲取所有目錄權限的個數 long dirPermissionCount = permissionList.stream().filter(permission -> permission.getType() == 0).count();Copy to clipboardErrorCopied

sorted

對Stream中元素按指定規則進行排序。

// 將所有權限按先目錄后菜單再按鈕的順序排序 List<UmsPermission> sortedList = permissionList.stream().sorted((permission1,permission2)->{return permission1.getType().compareTo(permission2.getType());}).collect(Collectors.toList());Copy to clipboardErrorCopied

skip

跳過指定個數的Stream中元素,獲取后面的元素。

// 跳過前5個元素,返回后面的 List<UmsPermission> skipList = permissionList.stream().skip(5).collect(Collectors.toList());Copy to clipboardErrorCopied

用collect方法將List轉成map

有時候我們需要反復對List中的對象根據id進行查詢,我們可以先把該List轉換為以id為key的map結構,然后再通過map.get(id)來獲取對象,這樣比較方便。

// 將權限列表以id為key,以權限對象為值轉換成map Map<Long, UmsPermission> permissionMap = permissionList.stream().collect(Collectors.toMap(permission -> permission.getId(), permission -> permission));

null值排到最后

List<MaintenanceVO> maintenances = new ArrayList<>(map.values());maintenances.sort(Comparator.nullsLast(Comparator.comparing(MaintenanceVO::getMaintenanceDate, Comparator.nullsLast(Comparable::compareTo))));

?

list轉LinkedHashMap

Map<Integer, List<GameRecord>> map = playerList.stream().collect(Collectors.groupingBy(GameRecord::getPokerLevel, LinkedHashMap::new, Collectors.toList()));

總結

以上是生活随笔為你收集整理的Java 8 Stream API了解下的全部內容,希望文章能夠幫你解決所遇到的問題。

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