collection集合
1.java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。
Collection接口在Java 类库中有很多具体的实现。
Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
2.Collections:Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对 集合中元素进行排序、搜索 以及线程安全等各种操作。
(1)List:有序,可重复。
ArrayList:底层实现的数据结构是数组,查询快,增删慢。线程不安全,效率高
LinkedList:底层实现的数据结构是链表,查询慢,增删块。线程不安全,效率高
Vector:底层实现的数据结构是数组,查绚块,增删慢。线程安全,效率低。
(2)Set:无序,唯一。
HashSet:底层数据结构是哈希表(无序,唯一)。保证元素唯一性依赖于两个方法:hashCode()和equals()
LinkedHashSet:底层数据结构是链表和哈希表。(FIFO,有序,唯一)。通过链表保证有序性, 通过哈希表保证唯一性。
TreeSet:底层数据结构是红黑树。(唯一,有序)
(3)Map中常用的是Hash Map,HashMap,HashTable,TreeMap。
TreeMap:有序
HashMap:无序,线程不安全,效率高
HashTable:无序,线程安全,效率低。
HashMap和hashTable的区别:
Hashtable不允许null值,HashMap允许null值(key和value都允许)
(4)队列(Queue):先进先出 栈(stack):先进后出