java中集合详解_java中的集合讲解

java集合主要有三种类型:

●List:是个有序集合,可以放重复的数据

●Set: 是个无序集合,不可以放重复数据

●Map: 是个无序集合,一个键对象,一个值对象,键对象不可以重复,值对象可以重复。

以下图解是List和Set集合的继承关系:

965dad2bb49740dbed2224fbe0542e23.png

也许你看了上面的继承图,可能有点疑惑:链表、哈希表等数据结构到底是怎么样的呢?

接下来详细解析一下数组、链表和哈希表等数据结构:

●数组数据结构:

364ae90f3a55423d3fdda95d99cfdd3d.png

通过上图不难发现,知道了数组首元素内存地址,要查找的元素只要知道下标就可以快速计算出偏移量,通过首元素内存地址加上偏移量快速计算出要查找元素的内存地址,通过内存地址就可以快速定位该元素,所以数组查询效率很高。同理,增删元素时,为了保证数组中的元素是有序的,就要重新维护这个顺序,导致增删元素效率很低。

●单向链表数据结构:

258da9f7a26647b9cf37e540dc66d21c.png

●双向链表数据结构:

3aded740fbf26f6386c6750ceabb833b.png

存储原理和单向链表类似,在这里就不多说了。

●哈希表数据结构:

d42a24ff1aaa97f4576d621057cba216.png

哈希表可以看做是,数组和单向链表的结合,所以哈希表的增删和查询效率都是很高的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值