集合的实现类的存储结构
集合的实现类的存储结构
List
集合的常用实现类有ArrayList
和LinkedList
,其中,ArrayList
是使用数组结构来存储的,数组结构要求数据在内存中必须是连续的,存在查询效率高,但修改效率低的问题;而LinkedList
是使用链表结构来存储的,存在查询效率低,但修改效率高的问题!
Set
集合的常用实现类有HashSet
,其数据是完全散列的,而LinkedHashSet
也是使用链表结构来存储数据的!
问题:java.util.Set 有没有像 list 一样的get方法吧?
答案是没有。
List特点:元素有放入顺序,元素可重复。
Set特点:元素无放入顺序,元素不可重复。
List的get方法需要下标,其实也就是放入顺序,由于Set没有放入顺序,所以这应该就是没有给Set设计get方法的原因。
扩展:在Set中的位置是由元素的HashCode决定的,位置其实是固定的。要取Set的值,一般是用iterator() 方法获取迭代器进行操作,也可以用toArray()方法转成数组来操作。