java中的集合讲解
java集合主要有三种类型:
●List:是个有序集合,可以放重复的数据
●Set: 是个无序集合,不可以放重复数据
●Map: 是个无序集合,一个键对象,一个值对象,键对象不可以重复,值对象可以重复。
以下图解是List和Set集合的继承关系:
也许你看了上面的继承图,可能有点疑惑:链表、哈希表等数据结构到底是怎么样的呢?
接下来详细解析一下数组、链表和哈希表等数据结构:
●数组数据结构:
通过上图不难发现,知道了数组首元素内存地址,要查找的元素只要知道下标就可以快速计算出偏移量,通过首元素内存地址加上偏移量快速计算出要查找元素的内存地址,通过内存地址就可以快速定位该元素,所以数组查询效率很高。同理,增删元素时,为了保证数组中的元素是有序的,就要重新维护这个顺序,导致增删元素效率很低。
●单向链表数据结构:
●双向链表数据结构:
存储原理和单向链表类似,在这里就不多说了。
●哈希表数据结构:
哈希表可以看做是,数组和单向链表的结合,所以哈希表的增删和查询效率都是很高的。
转载于:https://blog.51cto.com/zhaoc/1361913