java 有序集合_java集合整理的详细说明

一 .什么是java集合?集合与数组有什么区别?下面我们来详细讨论一下

1.一般地,我们把研究对象统称为元素;把一些元素组成的总体叫做集合.

2. 数组,是有序的元素序列,用于储存多个相同类型数据的集合,

数组是java语言内置的数据类型,它是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不同,当你创建了一个数组时,他的容量是不变的,而且在生命周期也是不能改变的,还有JAVA数组会做边界检查,如果发现有越界现象,会报RuntimeException异常错误,当然检查边界会以效率为代价。

二 .数组和集合的区别

ccc87eb115529c730a853975a8c41644.png

bfca48e7a76c6118f331d6c759debcc8.png

集合与数组区别

1、数组声明了它容纳的元素的类型,而集合不声明。

2、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。

3、数组的存放的类型只能是一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。

4、数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查都是最快的。

三 . java集合框架图

f5d8a5c38bb3ba583bace6660041a9ba.png

java集合框架图

从上面的图片可以看出java集合主要分为两种类型的容器

第一种:集合(Conllection),用来存储一个元素集合

第二种:图(Map) ,用来存储键/值对映射.

其中,

ca16313f71fdf2ea88f6d3ef1f2c96f6.png

Collection说明

Collection 接口对象的集合(单列集合)

====> List 接口:有序的,可重复

=======> LinkedList 接口实现类, 链表, 插入删除速度快, 没有同步, 线程不安全

=======> ArrayList 接口实现类, 数组, 访问查询快, 没有同步, 线程不安全

=======> Vector 接口实现类 ,数组,同步, 线程安全 (类可以实现可增长的对象数组。)

===========> Stack 是Vector类的实现类 (后进先出 的对象堆栈)

====>Set 接口: 仅接收一次,不可重复,并做内部排序

├—————-└HashSet 使用hash表(数组)存储元素

│————————└ LinkedHashSet 链表维护元素的插入次序

└ —————-TreeSet 底层实现为二叉树,元素排好序

Map 接口 键值对的集合 (双列集合)

├———Hashtable 接口实现类, 同步, 线程安全

├———HashMap 接口实现类 ,没有同步, 线程不安全-

│—————–├ LinkedHashMap 双向链表和哈希表实现

│—————–└ WeakHashMap

├ ——–TreeMap 红黑树对所有的key进行排序

└———IdentifyHashMap

四.List接口说明

a7f368142ba6ee89c5e3080d1a93a6b3.png

Listj接口说明

五. Set的说明

fd551281b2a4e34ce4fbaed54eab4ec2.png

set接口的说明

六.Queue接口说明

a65d11da8211525f07934463aca7260e.png

Queue接口说明

七.Map

1988f66c0bdba6b29cdcdaae540cdae1.png

Map接口说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值