精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

ListUtils技巧大全:提升你的Java列表操作效率

開發 前端
本文將介紹Apache Commons Collection庫中的ListUtils類。這個類為Java中的List接口提供了實用功能和裝飾方法。

本文將介紹Apache Commons Collection庫中的ListUtils類。這個類為Java中的List接口提供了實用功能和裝飾方法。

引入依賴包

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-collections4</artifactId>
   <version>4.4</version>
 </dependency>

我們現在創建一個簡單的用戶對象,使用這個對象來測試ListUtils類的功能性。如下所示:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserObject {
    private String userName;
    private Integer userId;
    private Double userSalary;
}

接下來創建一個叫做 defaultUserList的列表:

List<UserObject> defaultUserList = Arrays.asList(
   new UserObject("User1", 1, 10000.0),
   new UserObject("User2", 2, 20000.0),
   new UserObject("User3", 3, 30000.0),
   new UserObject("User4", 4, 40000.0),
   new UserObject("User5", 5, 50000.0));

ListUtils核心功能

1)DefaultIfNull

它接收兩個參數:一個默認列表和一個用戶列表。如果現有的用戶列表為空,該方法將返回默認列表。當通過List實例處理引用數據時,這很有用。它可以防止發生空指針異常。

List<UserObject> nullList = null;
assertEquals(defaultUserList,ListUtils.defaultIfNull(defaultUserList, nullList));

2)EmptyIfNull

它接收一個用戶列表作為輸入參數,如果用戶列表為空,則返回一個空列表,避免發生空指針異常。

List<UserObject> nullList = null;
assertTrue(ListUtils.emptyIfNull(nullList).isEmpty());

3)FixedSizeList

這個方法是輸出一個固定大小的列表,不能添加或刪除元素,但可以編輯列表的元素。

如下面的代碼所示,如果我們嘗試從固定列表中添加還是刪除元素,都會拋出UnsupportedOperationException。

List < UserObject > fixedList = ListUtils.fixedSizeList(defaultUserList);

 assertEquals(Double.valueOf(10000), fixedList.get(0).getUserSalary());

 Exception exception = assertThrows(UnsupportedOperationException.class,
         () -> {
                 fixedList.add(new UserObject("User6", 6, 60000.0));
         });
 assertEquals("List is fixed size", exception.getMessage());

 assertThrows(UnsupportedOperationException.class, () -> {
         fixedList.remove(0);
 });

4)PredicatedList

當我們希望將謂詞作為對用戶列表的檢查時,這個方法非常有用,可以使用兩種方式。

方法1:創建一個包含用戶數據的列表,然后使用謂詞進行驗證。如果存在元素未通過謂詞條件,則拋出錯誤。

例如:ListUtils.predicatedList檢查輸入列表的所有元素的salary參數是否大于20000.0;如果不是,它將拋出IllegalArgumentException。

assertThrows(IllegalArgumentException.class, () -> {
   ListUtils.predicatedList(defaultUserList,
     userObj -> userObj.getUserSalary() > 20000.0);
  });

方法2:在數據插入列表時執行驗證。通過輸入一個空列表和一個謂詞條件,可以獲取一個預測列表。當我們嘗試添加一個新的數據條目時,它會與謂詞進行驗證,如果條件不滿足,就會拋出異常。

List<UserObject> predicatedUserList = ListUtils.predicatedList(
    new ArrayList<UserObject>(),
    userObj -> userObj.getUserSalary() > 20000.0);

  assertThrows(IllegalArgumentException.class, () -> {
   predicatedUserList.add(new UserObject("User", 2, 10000.0));
  });

5)Partition

該方法通過指定子列表的大小將用戶列表劃分為子列表。如下所示:

List<List<UserObject>> partitionedList = ListUtils
    .partition(defaultUserList, 2);
  assertEquals(3, partitionedList.size());

6)Index Of

該方法接受用戶列表和謂詞作為輸入。然后找到第一個滿足謂詞條件的元素并返回其下標。

int indexOfObject = ListUtils.indexOf(defaultUserList,
    userObj -> userObj.getUserSalary().equals(20000.0));
  assertEquals(1, indexOfObject);

7)Select

它與Java 8流過濾器的工作方式相同,接收用戶列表和謂詞作為輸入,并返回滿足謂詞條件的參數列表。

// Java 8 Stream示例
 List<UserObject> java8List = defaultUserList
    .stream()
    .filter(userObj -> userObj.getUserSalary() > 20000.0)
    .collect(Collectors.toList());
  assertEquals(3, java8List.size());
// ListUtils.select方法使用示例
 List<UserObject> predicatedList = ListUtils.select(defaultUserList,
    userObj -> userObj.getUserSalary() > 20000.0);
  assertEquals(3, predicatedList.size());

8)SelectRejected

這個方法是ListUtils.select的逆操作。將用戶列表和謂詞作為輸入傳遞給此方法,并返回所有不滿足謂詞條件的元素列表。

List<UserObject> listNotMeetingPredicate = ListUtils.selectRejected(
    defaultUserList, userObj -> userObj.getUserSalary() > 20000.0);
  assertEquals(2, listNotMeetingPredicate.size());

9)IsEqualList

此方法用于比較兩個列表。僅當兩個列表具有相同的大小,并且兩個列表中所有相應的元素對都相等時,才返回true。

List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
  List<Integer> list2 = Arrays.asList(1, 2, 3, 4);
  List<Integer> list3 = Arrays.asList(3, 4, 5, 6, 7);
  
  assertTrue(ListUtils.isEqualList(list1, list2));
  assertFalse(ListUtils.isEqualList(list1, list3));

它還可以比較兩個不同的List接口實現。示例如下:比較ArrayList、LinkedList和HashSet。

List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
  List<Integer> linkedList = new LinkedList<>(list1);
  Set<Integer> hashSet = new HashSet<>(list1);
  assertTrue(ListUtils.isEqualList(list1, linkedList));
  assertTrue(ListUtils.isEqualList(list1, hashSet));

10)Intersection

該方法接受兩個列表作為輸入,并返回兩個列表的交集。

List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
  List<Integer> list3 = Arrays.asList(3, 4, 5, 6, 7);
 
  assertEquals(Arrays.asList(3, 4), ListUtils.intersection(list1, list3));

11)LazyList

這是ListUtils類提供的另一個有趣的方法。它接收一個列表和一個轉換器或工廠作為輸入,然后返回一個懶加載列表,其元素在需要時創建。

如下所示:

Transformer<Integer, UserObject> transformer = input -> {
   if (defaultUserList.size() > input)
    return defaultUserList.get(input);
   else
    return new UserObject();
  };

  List<UserObject> lazyList = ListUtils
    .lazyList(new ArrayList<UserObject>(),
    transformer);

  assertEquals(defaultUserList.get(0), lazyList.get(0));
  assertEquals(new UserObject(), lazyList.get(6));
  assertEquals(1, lazyList.indexOf(null));
責任編輯:華軒 來源: 今日頭條
相關推薦

2022-07-18 08:08:16

Go?語言技巧

2025-08-27 09:26:35

Vim編輯器編程

2024-10-09 12:18:38

2024-10-10 11:49:27

2023-02-22 17:51:10

VS code插件技巧

2025-01-24 07:44:31

LinuxsystemdAnsible

2020-07-08 17:06:00

Python開發工具

2019-07-08 14:45:17

Excel數據分析數據處理

2024-11-19 15:28:15

2023-09-27 19:44:59

瀏覽器調試技巧

2021-04-18 18:58:16

JRebelJVM插件

2025-01-07 10:48:08

2017-03-07 14:26:19

Eclipse技巧效率

2025-03-03 00:15:00

JavaScript開發效率

2023-11-06 09:32:52

Java實踐

2016-10-09 20:07:43

2021-07-19 22:51:28

Python開發編程

2021-04-30 07:33:35

效率提升技巧

2023-09-26 00:00:20

JS簡寫技巧

2024-12-16 17:20:17

MySQL通配符
點贊
收藏

51CTO技術棧公眾號

亚洲直播在线一区| 久久综合伊人77777尤物| 免费无码av片在线观看| 国产h视频在线观看| 激情图片小说一区| 午夜精品理论片| 最新中文字幕av| aaa国产精品视频| 在线视频国内自拍亚洲视频| 亚洲免费av网| 日本大片在线观看| 极品尤物av久久免费看| 18久久久久久| 国产又黄又爽又无遮挡| 亚洲精华一区二区三区| 制服丝袜在线91| 亚洲国产精品久久久久爰色欲| 日本成人网址| 91麻豆蜜桃一区二区三区| 国产主播欧美精品| 特级西西444www大精品视频免费看 | 亚洲欧美日韩在线| 欧美日韩国产综合视频在线| 国产91视频在线| 日韩在线卡一卡二| 性欧美长视频免费观看不卡| 777777国产7777777| 综合综合综合综合综合网| 日韩手机在线导航| 色91精品久久久久久久久| 三级中文字幕在线观看| 一区二区三区在线影院| 亚洲国产精品一区二区第一页 | av黄色在线看| 欧美激情日韩| 精品国产视频在线| 日本猛少妇色xxxxx免费网站| 国产乱人伦丫前精品视频| 91精品国产色综合久久不卡蜜臀 | 国产亚洲精品91在线| 亚洲色偷偷色噜噜狠狠99网| 色播一区二区| 3d动漫精品啪啪一区二区竹菊| 日本激情视频在线| 深夜成人福利| 色悠久久久久综合欧美99| 日本一道本久久| sm捆绑调教国产免费网站在线观看| 亚洲天堂久久久久久久| 亚洲欧洲日韩综合二区| 99免在线观看免费视频高清| 久久久高清一区二区三区| 精品中文字幕一区| 亚洲欧美色视频| 97se亚洲国产综合自在线| caoporn国产精品免费公开| 99精品视频免费看| 国产在线麻豆精品观看| 91久久精品美女高潮| 91亚洲国产成人久久精品麻豆| 老司机免费视频一区二区三区| 国产精品综合网站| 在线免费av网| 国产主播一区二区三区| 亚洲直播在线一区| 男人天堂手机在线观看| 99久久免费视频.com| 蜜桃麻豆91| av在线中文| 最新欧美精品一区二区三区| 欧美 另类 交| 成人高潮aa毛片免费| 亚洲va韩国va欧美va| 激情综合在线观看| yw.尤物在线精品视频| 欧美日韩视频在线观看一区二区三区 | 91免费看蜜桃| 天天干天天摸天天操| 久久综合九色综合97_久久久| 欧美大陆一区二区| melody高清在线观看| 成人免费在线视频观看| 国产精品一线二线三线| 伊人久久综合一区二区| 欧美手机在线视频| 少妇丰满尤物大尺度写真| 精品三级av在线导航| 在线看国产精品| 国产少妇在线观看| 一本久道久久综合狠狠爱| 国产精品91视频| 国产xxxx孕妇| 久久久91精品国产一区二区精品 | 日韩综合一区二区| 91在线视频免费| 亚洲欧美色视频| 国产精品久久久久久福利一牛影视 | 少妇欧美激情一区二区三区| 欧美一级一片| 久久成人18免费网站| 国产91精品一区| 国产精品一二三区在线| 欧美精品亚洲| 七七久久电影网| 在线观看视频欧美| 欧美成人精品一区二区综合免费| av中文字幕一区二区| 久久99精品国产99久久6尤物| 亚洲黄网在线观看| 成人av一区二区三区| 亚洲高清视频在线观看| 色戒汤唯在线| 日韩三级高清在线| 欧美激情久久久久久久| 日韩视频免费| 99久久精品免费看国产四区| 国产精品天堂| 欧美日韩国产麻豆| 亚洲欧洲日韩综合| 国产精品毛片一区二区在线看| 欧美一区三区三区高中清蜜桃| 99免费在线视频| 国产精品视频看| 成人羞羞国产免费网站| 精品久久对白| 欧美极品少妇xxxxⅹ喷水 | 毛片电影在线| 亚洲高清不卡av| www青青草原| 国产在线视频一区二区三区| 色视频一区二区三区| 91精品论坛| 亚洲精品美女视频| 久久黄色免费视频| 国产一区二区按摩在线观看| 亚洲午夜精品福利| 天然素人一区二区视频| 亚洲人成网7777777国产| 久久夜靖品2区| 国产色视频在线播放| 精品久久网站| 国产成人精品视频在线| 免费看男男www网站入口在线| 欧美日韩美女在线观看| 波多野结衣先锋影音| 国产一区成人| 欧美视频观看一区| 九九九伊在线综合永久| 亚洲区免费影片| 成人小视频在线播放| 亚洲国产精华液网站w| 九九热免费精品视频| 国产一区二区三区四区五区| 欧洲亚洲女同hd| 国产三级视频在线播放线观看| 欧美性生交xxxxx久久久| 蜜桃精品成人影片| 久久综合中文| 四虎影院一区二区三区 | 欧美一区二区久久| 波多野结衣爱爱视频| 粉嫩欧美一区二区三区高清影视| avav在线播放| 神马日本精品| 国产精品夜间视频香蕉| 欧美另类极品| 欧美不卡一区二区三区四区| 国产主播在线播放| 久久亚洲影视婷婷| 超碰av在线免费观看| 色喇叭免费久久综合网| 91在线无精精品一区二区| 日韩特级毛片| 亚洲精品一区在线观看香蕉| 亚洲精品无码久久久久| 亚洲欧美一区二区三区国产精品| 国产一精品一aⅴ一免费| 亚洲免费精品| 一本色道久久综合亚洲精品婷婷| 国产一区二区久久久久| 久久免费精品视频| 国产精品久久久久一区二区国产| 7777精品伊人久久久大香线蕉最新版 | 26uuu久久噜噜噜噜| 中文字幕在线观看日本| 日韩欧美国产小视频| 国产专区第一页| 综合av第一页| 3d动漫精品啪啪一区二区下载 | 成人国产精品色哟哟| 福利成人导航| 中文字幕av日韩| 色综合视频在线| 欧美人狂配大交3d怪物一区| 国产91av视频| 国产精品成人一区二区艾草 | 中文字幕综合网| jizz欧美性20| 国产成人在线看| mm131国产精品| 午夜亚洲精品| 韩日视频在线观看| 偷拍欧美精品| 欧美一区二区影视| eeuss鲁片一区二区三区| 国产极品jizzhd欧美| heyzo在线播放| 久久精品在线播放| 岛国视频免费在线观看| 欧美va亚洲va香蕉在线| 在线视频免费观看一区| 欧美日韩精品二区| 黄色在线观看免费| 国产精品久久久久久久浪潮网站 | 亚洲一区二区三区四区五区中文| 国产又黄又粗的视频| av亚洲精华国产精华精| 黄色aaaaaa| 蜜桃精品视频在线观看| 青青草原av在线播放| 黄色精品一区| 91视频成人免费| 日韩激情免费| 天堂av一区二区| 一区二区三区日本久久久 | 残酷重口调教一区二区| 国产乱码精品一区二区三区中文| а天堂中文最新一区二区三区| 国产成人福利网站| 伊人久久视频| 欧美在线观看视频| 国产社区精品视频| 久久久视频在线| 久久av色综合| 九九久久精品一区| 成人在线播放免费观看| 日韩一区二区av| 老司机在线看片网av| 日日摸夜夜添一区| 3p视频在线观看| 在线观看亚洲视频| 二区在线观看| 最近的2019中文字幕免费一页| 成年人视频在线免费观看| 亚洲天堂免费在线| 国产特黄在线| 日韩在线观看av| 美女免费久久| 欧美另类69精品久久久久9999| 免费网站免费进入在线| 久久亚洲国产精品| 中中文字幕av在线| 久久久亚洲国产| freexxx性亚洲精品| 97香蕉久久夜色精品国产| 精品丝袜在线| 日韩av片免费在线观看| 成人涩涩视频| 成人做爰www免费看视频网站| 成人在线视频www| 91嫩草国产在线观看| 麻豆一区二区| 亚洲第一综合| 一区二区三区国产精华| 国产精品一线二线三线| 午夜在线精品偷拍| 欧美婷婷精品激情| 国产在线国偷精品产拍免费yy| 无码人妻一区二区三区精品视频| www.日韩在线| 国产伦精品一区二区三区视频女| 亚洲欧美日韩电影| 欧美激情视频一区二区三区不卡| 深夜福利在线视频| 一区二区三区久久精品| 日韩欧美亚洲一区二区| 亚洲 国产 日韩 欧美| 欧美午夜理伦三级在线观看| 一级黄色片视频| 日韩欧美一级二级三级| 天堂v在线观看| 亚洲性夜色噜噜噜7777| 成人影院在线观看| 91国语精品自产拍在线观看性色 | 黄色www视频| 亚洲欧美中文字幕| 国产写真视频在线观看| 97人人做人人爱| 日本午夜精品久久久久| 国产精品午夜av在线| 免费观看久久av| 欧美aaa在线观看| 国产欧美日韩亚洲一区二区三区| 深夜黄色小视频| 不卡的av电影| 波兰性xxxxx极品hd| 婷婷六月综合亚洲| 91成品人影院| 亚洲男人的天堂网站| 91麻豆国产福利在线观看宅福利| 欧美在线xxx| 亚洲天堂av资源在线观看| 涩涩涩999| 99riav1国产精品视频| av中文字幕网址| 2024国产精品| 国产一级片免费| 欧美日韩欧美一区二区| 色猫av在线| 欧美大片在线免费观看| 精品欧美一区二区三区在线观看| 成人三级在线| 91精品电影| 91热这里只有精品| www.亚洲免费av| 国产盗摄一区二区三区在线| 欧美亚洲综合久久| 亚洲aaaaaaa| 久久久影视精品| www.成人在线.com| 亚洲视频欧美在线| 首页综合国产亚洲丝袜| 中文字幕免费高清视频| 洋洋成人永久网站入口| 一级全黄少妇性色生活片| 亚洲欧美国产日韩中文字幕| www视频在线观看| yy111111少妇影院日韩夜片 | 澳门成人av| 欧美交换配乱吟粗大25p| 蜜桃传媒麻豆第一区在线观看| 伊人网伊人影院| 精品国产乱码久久久久久虫虫漫画| 亚洲av无码一区二区三区dv| 久久成年人视频| 久久在线观看| 九一免费在线观看| 国产一区二区三区免费看| 日韩av手机在线免费观看| 欧美片网站yy| 午夜免费福利在线观看| 国产精品久久电影观看| 国产一区日韩| 日本美女高潮视频| 国产欧美中文在线| 精品久久久久久久久久久国产字幕| 日韩黄色在线免费观看| 超碰在线99| 久久久久久艹| 免费日韩av| 中文字幕人妻一区二区三区在线视频 | 伊人久久av导航| 激情久久五月天| 国产一区二区视频在线观看免费| 日韩网站在线看片你懂的| 牛牛精品视频在线| 国产精品视频在线免费观看| 99精品视频免费观看| 亚洲熟妇无码av| 精品视频在线免费观看| 黄色免费在线看| 91青青草免费观看| 在线视频观看日韩| 给我看免费高清在线观看| 色欧美88888久久久久久影院| 超碰国产在线观看| 成人网欧美在线视频| 欧美日韩亚洲一区在线观看| 美女黄色一级视频| 色综合天天综合在线视频| bbbbbbbbbbb在线视频| 亚洲一区国产精品| 亚洲精品裸体| 亚洲综合欧美综合| 日韩一区二区在线观看| 黄色aa久久| 亚洲永久激情精品| 风流少妇一区二区| 波多野结衣一区二区三区在线| 日韩一区二区精品视频| 哺乳挤奶一区二区三区免费看| 亚洲自偷自拍熟女另类| 国产精品美女久久久久av爽李琼 | 国产精品亚洲四区在线观看 | 6699嫩草久久久精品影院| 欧美下载看逼逼| 国产一区视频网站| 日韩 欧美 综合| 日韩中文字幕免费看| 精品亚洲精品| 一级黄色在线播放| 岛国av一区二区| 国产cdts系列另类在线观看| 精品久久中出| 国内精品写真在线观看| av大全在线观看| 欧美国产日本高清在线 | 亚洲人成电影网站色www| 日本在线成人| 在线视频日韩一区|