前言:
今天兄弟们对“java 线程安全的set”都比较重视,我们都想要学习一些“java 线程安全的set”的相关知识。那么小编在网摘上收集了一些有关“java 线程安全的set””的相关知识,希望各位老铁们能喜欢,我们一起来了解一下吧!本文主要讲述:集合工具类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并不会发生改变。
大家有没有工作中遇到的报错或难点问题,可以评论区分享一下。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java 线程安全的set