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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数学函数图像处理_matlab基本图像处理

    数学函数图像处理_matlab基本图像处理文章目录1.imdilate2.imresize3.imfinfo4.imcomplement总结1.imdilate功能:进行膨胀操作介绍用法:IM2=imdilate(IM,SE)对灰度图像或二值图像IM进行膨胀操作,返回结果图像IM2。SE为由strel函数生成的结构元素对象。IM2=imdilate(IM,NHOOD)对灰度图像或二值图像IM进行膨胀操作,返回结果图像IM2。参量NHOOD是一个由O和1组成的矩阵,指定邻域。IM2=imdilate(…,SHAPE)对图

    2022年10月5日
    5
  • 绘制自己的人际关系图简单_网络给人际关系带来的影响

    绘制自己的人际关系图简单_网络给人际关系带来的影响如何系统的绘制自己的人际关系网络图?人际关系网络的分类对于人际关系网络,国内外研究比较多的是社交网络,社交网络分双向和单项,比如脸书,微信就是双向(add),微博,Twitter就是单向(flower)。我个人把双向网络归纳为强关系网络,在人际关系网中是不容易破裂的,两个人互加为好友,若干年后还是好友!单向网络是弱关系网络,在人际关系网络中是容易断裂的,你某天关注了某位明星,也许从此以后你都没在看…

    2025年7月9日
    5
  • 在互联网上,没有人知道你是一条狗?「建议收藏」

    在互联网上,没有人知道你是一条狗?「建议收藏」1993年,《纽约客》(TheNewYorker)杂志刊登一则由彼得·施泰纳(PeterSteiner)创作的漫画:标题是【OntheInternet,nobodyknowsyou’readog.】这则漫画中有两只狗:一只黑狗站在电脑椅上,爪子扶着键盘。它望向站在地上、表情迷茫的另一只狗,兴奋地说:「在互联网上,没人知道你是一条狗。(OntheInternet,nobodyknowsyou’readog.)画中那只狗的台词随即成了IT界广为流传的经典笑话。那个

    2022年5月14日
    113
  • 微信服务号开发整体流程图_微信号怎么改第二次

    微信服务号开发整体流程图_微信号怎么改第二次1、微信的各个平台微信开放平台,面向开发人员,为网站、App提供微信第三方登录功能,为App提供支付功能(通过客户端sdk拉起微信客户端);微信公众平台,对应的是公众号,包括订阅号、服务号、企业号,面向运营人员和开发人员,运营可以直接登录公众号管理后台查看公众号的各种指标,开发则是通过调用微信提供的各种接口来增强公众号的功能;微信商户平台,用户通过微信支付的钱,最终到达商户账号。无论是开…

    2022年9月30日
    4
  • java编写九九乘法表「建议收藏」

    java编写九九乘法表「建议收藏」案例:java编写九九乘法表,源码如下:packagestart;publicclassstart2{ publicstaticvoidmain(String[]args){ inti,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ System.out.print(j+”*”+i+”=”+i*j+”\t”); } System.out.println(); } }}运行结果如下:

    2022年7月15日
    13
  • 实验三编程编译连接跟踪_算法设计编程实验

    实验三编程编译连接跟踪_算法设计编程实验实验三 编程,编译,连接,跟踪

    2022年4月20日
    37

发表回复

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

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