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);elsereturn 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));
推荐阅读
- 有创意的网店名字 有创意的网店名字大全
- 属狗的男孩名字大全集两个字 属狗的男孩名字大全集
- 饭店名字大全和寓意吉字开头 饭店名字大全和寓意
- 超市名字店名大全 超市名字店名大全带购字
- 姓李男孩名字好听大全 姓李男孩名字好听大全四个字寓意
- 有创意的奶茶名字大全 有创意的奶茶名字大全英文
- 吸引人的军团名字大全 吸引人的军团名字大全四个字
- 搬家的风水注意事项 搬家的风水注意事项大全
- 客厅风水知识大全之客厅财位图解 客厅财位风水摆放以及禁忌
- 新颖的团队名字大全 新颖的团队名字