集合的实现类的存储结构

集合的实现类的存储结构

List集合的常用实现类有ArrayListLinkedList,其中,ArrayList是使用数组结构来存储的,数组结构要求数据在内存中必须是连续的,存在查询效率高,但修改效率低的问题;而LinkedList是使用链表结构来存储的,存在查询效率低,但修改效率高的问题!

Set集合的常用实现类有HashSet,其数据是完全散列的,而LinkedHashSet也是使用链表结构来存储数据的!

问题:java.util.Set 有没有像 list 一样的get方法吧?

答案是没有。

List特点:元素有放入顺序,元素可重复。
Set特点:元素无放入顺序,元素不可重复。

List的get方法需要下标,其实也就是放入顺序,由于Set没有放入顺序,所以这应该就是没有给Set设计get方法的原因。

扩展:在Set中的位置是由元素的HashCode决定的,位置其实是固定的。要取Set的值,一般是用iterator() 方法获取迭代器进行操作,也可以用toArray()方法转成数组来操作。

posted @ 2022-02-15 15:05  Charles博客  阅读(65)  评论(0编辑  收藏  举报