List和Set区别

List集合有序可重复,主要实现类是ArrayList和LinkedList,Vector

(1)ArrayList:底层数据结构是数组,查询快,增删慢

(2)LinkedList:底层数据结构是双向链表,查询慢,增删快

两者线程均不安全,ArrayList集合随机访问效率高于LinkedList集合,LinkedList集合在插入,删除元素时效率高于ArrayList集合

(3)Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低

Set集合无序,不可重复,实现类有HashSet和LinkedHashSet和TreeSet

(1)HashSet底层数据结构是哈希表,元素无序,唯一(如果不重写hashCode和equals方法无法保证元素的唯一性),线程不安全,可以存null

(2)LinkedHashSet底层是链表和哈希表,有序,唯一,线程不安全,

(3)TreeSet底层数据结构是红黑树,有序,唯一

你可能感兴趣的:(list,数据结构)