资讯专栏INFORMATION COLUMN

Collections工具类的概述以及用法

XGBCCC / 1847人阅读

摘要:正文工具类是包中的一个工具类,主要功能是对集合及其元素进行操作。这篇文章算是对官方文档的总结和归纳,也加以自己的思考,也是面试题之一,希望自己能在之后不会再吃这道题的亏。

    本文首发于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

相关文章

  • Java多线程进阶(一)—— J.U.C并发包概述

    摘要:整个包,按照功能可以大致划分如下锁框架原子类框架同步器框架集合框架执行器框架本系列将按上述顺序分析,分析所基于的源码为。后,根据一系列常见的多线程设计模式,设计了并发包,其中包下提供了一系列基础的锁工具,用以对等进行补充增强。 showImg(https://segmentfault.com/img/remote/1460000016012623); 本文首发于一世流云专栏:https...

    anonymoussf 评论0 收藏0
  • Java编程基础19——Map集合&斗地主案例

    摘要:使用默认随机源对指定列表进行置换。将集合排序使用二分搜索法搜索指定列表,以获得指定对象根据元素的自然顺序,返回给定的最大元素。 1_Map集合概述和特点 A:Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 B:Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map...

    ygyooo 评论0 收藏0
  • Java集合框架——Map接口

    摘要:第三阶段常见对象的学习集合框架集合在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息。面试题和的区别是单列集合的顶层接口,有子接口和。 第三阶段 JAVA常见对象的学习 集合框架——Map集合 showImg(https://segmentfault.com/img/remote/1460000019683...

    princekin 评论0 收藏0
  • Java 性能调优指南之 Java 集合概览

    摘要:单线程集合本部分将重点介绍非线程安全集合。非线程安全集合框架的最新成员是自起推出的。这是标准的单线程阵营中唯一的有序集合。该功能能有效防止运行时造型。检查个集合之间不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【编者按】本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型。文章系国内 ITOM 管理平台 O...

    gnehc 评论0 收藏0
  • 1、Map接口 2、模拟斗地主洗牌发牌

    摘要:中的集合称为单列集合,中的集合称为双列集合。洗牌通过数字完成洗牌发牌发牌将每个人以及底牌设计为将最后张牌直接存放于底牌,剩余牌通过对取模依次发牌。存放的过程中要求数字大小与斗地主规则的大小对应。 01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同  a:Collection中的集...

    付伦 评论0 收藏0

发表评论

0条评论

XGBCCC

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<