100个Java工具类之45:Set集合工具类Apache之SetUtils

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

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

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

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

二、为Set集合创建一个hashcode

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

三、定义Set元素定义规则

Set set = SetUtils.predicatedSet(new HashSet(), 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 set = SetUtils.transformedSet(new HashSet(), num -> num + 1);
set.add(1);
输出:[2]

五、获取只读Set

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

六、获取线程安全的Set

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

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

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

展开阅读全文

页面更新:2024-05-19

标签:上文   线程   难点   演示   实例   元素   本文   定义   规则   发生   工具

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top