Java中有哪些集合,集合中有哪些类?

Java中有哪些集合,集合中有哪些类?Java中所有的类都位于java.util包下,主要由两个接口派生出来,分别是Collection和Map.Collection包含了List和Set两大分支。Map是一个映射接口。Set、Map、List可以看做集合的三大类。而遍历集合的工具有Iterator和Enumeration;Arrays和Collection是操作数组集合的两个工具类。一、Java中的集合主要分为四类:1、L…

大家好,又见面了,我是你们的朋友全栈君。

Java中所有的类都位于java.util包下,主要由两个接口派生出来,分别是Collection和Map.Collection包含了List和Set两大分支。Map是一个映射接口。Set 、Map、List可以看做集合的三大类。
而遍历集合的工具有Iterator和Enumeration;
Arrays和Collection是操作数组集合的两个工具类。

一、Java中的集合主要分为四类:

1、List列表:有序的,可重复的;
2、Queue队列:有序,可重复的;
3、Set集合:不可重复;
4、Map映射:无序,键唯一,值不唯一。

二、集合类下包含的主要的实现类:
每种集合类型下包含的具体的实现类
1 List列表:有序,可重复

1.1 ArrayList数组列表,有序,可重复,内部是通过Array实现。对数据列表进行插入、删除操作时都需要对数组进行拷贝并重排序。因此在知道存储数据量时,尽量初始化初始容量,提升性能。

1.2 LinkedList双向链表,每个元素都有指向前后元素的指针。顺序读取的效率较高,随机读取的效率较低。

1.3 Vector向量,线程安全的列表,与ArrayList一样也是通过数组实现的,不同的是Vector是线程安全的,也即同一时间下只能有一个线程访问Vector,线程安全的同时带来了性能的耗损,所以一般都使用ArrayList。

1.4 Stack栈,后进先出(LIFO),继承自Vector,也是数组,线程安全的栈。但作为栈数据类型,不建议使用Vector中与栈无关的方法,尽量只用Stack中的定义的栈相关方法,这样不会破坏栈数据类型。

1.5 ArrayQueue数组队列,先进先出(FIFO)

2 Queue队列,有序、可重复

2.1 ArrayDeque数组实现的双端队列,可以在队列两端插入和删除元素

2.2 LinkedList也是双向链表

2.3 PriorityQueue优先队列,数组实现的二叉树,完全二叉树实现的小顶堆(任意一个非叶子节点的权值,都不大于其左右子节点的权值)

3 Map映射/字典,无序,键值对,键唯一

在这里插入图片描述
3.1 HashMap哈希映射/字典,无序字典,键值对数据,key是唯一的,Key和Value都可以为null

3.2 TreeMap红黑树实现的key->value融合,可排序,红黑树是一种自平衡二叉查找树。

3.3 LinkedHashMap链表映射/字典,继承了hashmap的所有特性,同时又实现了双向链表的特性,保留了元素插入顺序。

4 Set集合,不可重复

4.1 HashSet基于HashMap实现的集合,对HashMap做了一些封装。与HaspMap不同的是元素的保存为链表形式,插入数据时遍历链表查看是否有相同数据,有则返回false,没有则返回true.

4.2 LinkedHashSet链表集合,继承自HashSet与LinkedHashMap相似,是对LinkedHashMap的封装。

4.3 TreeSet红黑树集合,与TreeMap相似,是对TreeMap的封装。

比较:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156688.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 各类加载loading动画效果

    各类加载loading动画效果效果一: 一、HTMLLoading…二、CSS/*绿色背景*/body{   background:#4ea980;   margin:50px;}/*纯白色圈*/.loader{   text-indent:-9999em;   position:relative;   width:200px;   height:20

    2022年4月19日
  • ubuntu linux下开启远程唤醒

    ubuntu linux下开启远程唤醒目录启动远程唤醒,需要主板支持才能进行。步骤一:检查计算机硬件是否支持WOL(wakeonlan)功能。步骤二:检查主板和电源是否支持WOL步骤三:检查网卡是否支持WOL步骤四:查看网卡步骤五:查询网卡是否支持远程唤醒步骤六:开启远程唤醒d为关闭g为开启步骤七:参考操作启动远程唤醒,需要主板支持才能进行。步骤一:检查计算机硬件是否支持WOL(wakeonlan)功能。步骤二:检查主板和电源是否支持WOL进入BIOS的PowerManage…

    2022年5月12日
  • idea 插件库永久激活破解方法[通俗易懂]

    idea 插件库永久激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
  • element 输入框点击事件_ElementUI的input事件问题

    element 输入框点击事件_ElementUI的input事件问题最近用ElementUI的el-input组件,然后发现一个问题,就是我在输入框后,加一个icon的button,然后我希望这个输入框可以触发两个事件,第一个是,输入完,按键盘回车键的事件,第二个是,输入完,点icon的button的click事件。然后翻阅文档,发现可以给input加@change事件,这样按回车可以搜索,然后可以把icon的button写成slot的方式然后给button加@c…

    2022年4月30日
  • mac双系统选择启动_mac装双系统好不好

    mac双系统选择启动_mac装双系统好不好解决方案1:开机时长按option键,进入系统选择界面:用左右方向键选择到你要设置为默认启动的盘,然后同时按下ctrl+enter键,即可将其设置为默认启动的系统。解决方案2:选择mac系统进入后,点击系统偏好设置—–>启动磁盘—–>进入如下图界面:首先点击最下面的锁图片,然后再进行更改,选择你要设置为默认启动的系统后,点击

    2022年10月6日
  • matlab中ewma实现,ewma 移动平均模型

    matlab中ewma实现,ewma 移动平均模型动平均(WMA)制图AL的计算方ME控R法J本文基于马尔可夫链的ME.WMA控制图AL计算的数学模型,用MaaR采tb平台,该模l对学术界和实际应用……在采样数据标准化处理的基础上,应用马尔可夫链进一步研究了多元指数移动平均(MEWMA)控制图中ARL计算的数学模型,采用Matlab实现了算法,就算法的收敛性及计算……3【摘要】针对设备异常…

    2022年10月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号