摘要:正文工具类是包中的一个工具类,主要功能是对集合及其元素进行操作。这篇文章算是对官方文档的总结和归纳,也加以自己的思考,也是面试题之一,希望自己能在之后不会再吃这道题的亏。
本文首发于cartoon的博客
转载请注明出处:https://cartoonyu.github.io/c...
推荐一篇不错的博文https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/Basis/Arrays,CollectionsCommonMethods.md
就在刚刚面试,被问到了Collections工具类有什么功能,我懵了,很少涉及到Collections这个工具类,只答了对集合元素的操作以及将线程不同步的集合类转换成线程同步,下定决心复盘一下。
正文Collections工具类是java.util包中的一个工具类,主要功能是对集合及其元素进行操作。虽然被问的有点懵,在结束查看官方文档时发现其实可以分成以下几大部分
特征
方法名为synchronizedXxx
适用范围
List
Collection
Set
Map
缺点
每次读写都要加锁,锁的层级为对象,不利于多线程的同时操作
在使用Iterator的遍历时修改元素ConcurrentModificationException
建议使用java.util.concurrent的集合线程同步类
特征
方法名为emptyXxx(空集合)/singletonXxx(包含传入元素的集合)/unmodifiableXxx(包含传入集合元素的集合)
适用范围
emptyXxx
Set
List
Map
Iterator
Enumeration
singletonXxx
Set
List
Map
unmodifiableXxx
Map
List
Set
特征
方法名为checkedXxx
适用范围
List
Map
Queue
Set
Collection
特征
asLifoQueue(将传入的Deque转换成Queue)
list(将传入的Enumeration转换成ArrayList)
newSetFromMap(根据传入的空Map返回Set)
nCopies(根据传入的n返回含n个副本的List)
特征
addAll
copy(将源集合元素复制到目标集合中)
适用范围
addAll
Collection
copy
List
特征
binarySearch(二分查找特定元素)
frequency(查找元素出现次数)
indexOfSubList(返回目标list在源list的开始位置)
subIndexOfSubList(返回目标list在源list的结束位置)
shuffle(返回随机索引元素)
适用范围
binarySearch
List
frequency
Collection
shuffle
List
特征
fill(替换集合所有元素)
replaceAll(替换特定的值)
适用范围
fill
List
replaceAll
List
特征
sort(排序)
swap
rotate(反转)
reverse
适用范围
List
特征
min/max(寻找最大/小元素)
disJoint(判断两个集合元素是否全不同)
适用范围
Collection
总结Collections工具类能对各接口以及实现类实现多种操作
集合类级操作
返回线程安全集合
返回不可变集合
返回安全视图
集合间的转换
涉及到内部元素的操作
添加元素到集合中
查找特定元素
替换元素
改变元素位置
元素间的比较
虽然有些方法不如其他包内的工具类好用,但是总体来说功能还是非常强大的。
这篇文章算是对官方文档的总结和归纳,也加以自己的思考,也是面试题之一,希望自己能在之后不会再吃这道题的亏。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77842.html
摘要:整个包,按照功能可以大致划分如下锁框架原子类框架同步器框架集合框架执行器框架本系列将按上述顺序分析,分析所基于的源码为。后,根据一系列常见的多线程设计模式,设计了并发包,其中包下提供了一系列基础的锁工具,用以对等进行补充增强。 showImg(https://segmentfault.com/img/remote/1460000016012623); 本文首发于一世流云专栏:https...
摘要:使用默认随机源对指定列表进行置换。将集合排序使用二分搜索法搜索指定列表,以获得指定对象根据元素的自然顺序,返回给定的最大元素。 1_Map集合概述和特点 A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map...
摘要:第三阶段常见对象的学习集合框架集合在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息。面试题和的区别是单列集合的顶层接口,有子接口和。 第三阶段 JAVA常见对象的学习 集合框架——Map集合 showImg(https://segmentfault.com/img/remote/1460000019683...
摘要:单线程集合本部分将重点介绍非线程安全集合。非线程安全集合框架的最新成员是自起推出的。这是标准的单线程阵营中唯一的有序集合。该功能能有效防止运行时造型。检查个集合之间不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【编者按】本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型。文章系国内 ITOM 管理平台 O...
摘要:中的集合称为单列集合,中的集合称为双列集合。洗牌通过数字完成洗牌发牌发牌将每个人以及底牌设计为将最后张牌直接存放于底牌,剩余牌通过对取模依次发牌。存放的过程中要求数字大小与斗地主规则的大小对应。 01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同 a:Collection中的集...
阅读 1917·2023-04-25 16:19
阅读 3056·2021-11-24 09:39
阅读 783·2021-11-16 11:44
阅读 1643·2019-08-29 12:52
阅读 1114·2019-08-26 13:33
阅读 1051·2019-08-26 10:26
阅读 2183·2019-08-23 16:42
阅读 2549·2019-08-23 14:37