<返回更多

Set集合工具类Apache之SetUtils

2023-08-14  今日头条  一名小小程序员
加入收藏

本文主要讲述:集合工具类Apache
org.apache.commons.collections4.SetUtils

上文介绍了关于ListUtils的实例,本文我们对SetUtils的部分用法进行演示。

一、判断两Set集合是否相等

Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2));
Set<Integer> set2 = new HashSet<>(Arrays.asList(1, 3));
boolean flag = SetUtils.isEqualSet(set1, set2);
输出:fasle

二、为Set集合创建一个hashcode

Set<Integer> set = new HashSet<>(Arrays.asList(1, 2));
int hashCode = SetUtils.hashCodeForSet(set);
输出:3

三、定义Set元素定义规则

Set<String> set = SetUtils.predicatedSet(new HashSet<String>(), e -> e.length() >= 4);
set.add("123456");
输出:[123456]
set.add("123");
输出:IllegalArgumentException:
Cannot add Object '123' - Predicate 'com.cinc.crmzmj.utils.DateUtil$$Lambda$15/0x0000000800066c40@627551fb' rejected it

四、可接收Transformer,对set元素按照规则进行转换

Set<Integer> set = SetUtils.transformedSet(new HashSet<Integer>(), num -> num + 1);
set.add(1);
输出:[2]

五、获取只读Set

Set<Integer> set = new HashSet<>(Arrays.asList(1, 2));
set = SetUtils.unmodifiableSet(set);
set.add(3);
输出:JAVA.lang.UnsupportedOperationException

六、获取线程安全的Set

Set<Integer> set = new HashSet<>(Arrays.asList(1, 2));
set = SetUtils.synchronizedSet(set);

获取只读Set和获取线程安全的Set时,返回的新Set才是只读或线程安全的,原Set并不会发生改变。

大家有没有工作中遇到的报错或难点问题,可以评论区分享一下。

关键词:Apache      点击(10)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Apache相关>>>