记性不好,只能记录一下,哈哈哈
Java集合
集 合 框 架 { C o l l e c t i o n { L i s t { A r r a y L i s t { 排列有序,可重复 底层使用数组 查找快,增删慢,getter()和setter()方法块 线程不安全 当容量不够时,ArrayList是当前容量*1.5+1 V e c t o r { 排列有序,可重复 底层使用数组 查找快,增删慢 线程安全、效率低 当容量不够时,Vector默认扩展一倍容量 L i n k L i s t { 排列有序,可重复 底层使用双向循环链表数据结构 查找慢,增删快,add()和remove()方法块 线程不安全 S e t { H a s h S e t { 排列无序,不可重复 底层使用Hash表实现 存取速度快 内部是HashMap T r e e S e t { 排列无序,不可重复 底层使用二叉树实现 排列存储 内部是TreeMap的SortedSet L i n k H a s h S e t { 采用Hash表存储,采用双向链表记录插入顺序 内部是LinkedHashMap Q u e u e { 在两端出入的List,所以也可以用数组或链表来实现 M a p { H a s h M a p { 键不可重复,值可重复 底层Hash表 线程不安全 允许key为null,也允许value为null H a s h T a b l e { 键不可重复,值可重复 底层Hash表 线程安全 key和value都不允许为null T r e e M a p { 键不可重复,值可重复 底层二叉树 集合框架 \begin{cases} Collection \begin{cases} List \begin{cases} ArrayList \begin{cases} & \text{排列有序,可重复}\\ & \text{底层使用数组}\\ & \text{查找快,增删慢,getter()和setter()方法块}\\ & \text{线程不安全}\\ & \text{当容量不够时,ArrayList是当前容量*1.5+1}\\ \end{cases}\\ Vector \begin{cases} & \text{排列有序,可重复}\\ & \text{底层使用数组}\\ & \text{查找快,增删慢}\\ & \text{线程安全、效率低}\\ & \text{当容量不够时,Vector默认扩展一倍容量}\\ \end{cases}\\ LinkList \begin{cases} & \text{排列有序,可重复}\\ & \text{底层使用双向循环链表数据结构}\\ & \text{查找慢,增删快,add()和remove()方法块}\\ & \text{线程不安全}\\ \end{cases} \end{cases} \\Set \begin{cases} HashSet \begin{cases} & \text{排列无序,不可重复}\\ & \text{底层使用Hash表实现}\\ & \text{存取速度快}\\ & \text{内部是HashMap}\\ \end{cases}\\ TreeSet \begin{cases} & \text{排列无序,不可重复}\\ & \text{底层使用二叉树实现}\\ & \text{排列存储}\\ & \text{内部是TreeMap的SortedSet}\\ \end{cases}\\ LinkHashSet \begin{cases} & \text{采用Hash表存储,采用双向链表记录插入顺序}\\ & \text{内部是LinkedHashMap}\\ \end{cases}\\ \end{cases} \\Queue \begin{cases} & \text{在两端出入的List,所以也可以用数组或链表来实现}\\ \end{cases} \end{cases} & \\Map \begin{cases} HashMap \begin{cases} & \text{键不可重复,值可重复}\\ & \text{底层Hash表}\\ & \text{线程不安全}\\ & \text{允许key为null,也允许value为null}\\ \end{cases}\\ HashTable \begin{cases} & \text{键不可重复,值可重复}\\ & \text{底层Hash表}\\ & \text{线程安全}\\ & \text{key和value都不允许为null}\\ \end{cases}\\ TreeMap \begin{cases} & \text{键不可重复,值可重复}\\ & \text{底层二叉树}\\ \end{cases}\\ \end{cases} & \end{cases} 集合框架⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧Collection⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧List⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧ArrayList⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧排列有序,可重复底层使用数组查找快,增删慢,getter()和setter()方法块线程不安全当容量不够时,ArrayList是当前容量*1.5+1Vector⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧排列有序,可重复底层使用数组查找快,增删慢线程安全、效率低当容量不够时,Vector默认扩展一倍容量LinkList⎩⎪⎪⎪⎨⎪⎪⎪⎧排列有序,可重复底层使用双向循环链表数据结构查找慢,增删快,add()和remove()方法块线程不安全Set⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧HashSet⎩⎪⎪⎪⎨⎪⎪⎪⎧排列无序,不可重复底层使用Hash表实现存取速度快内部是HashMapTreeSet⎩⎪⎪⎪⎨⎪⎪⎪⎧排列无序,不可重复底层使用二叉树实现排列存储内部是TreeMap的SortedSetLinkHashSet{采用Hash表存储,采用双向链表记录插入顺序内部是LinkedHashMapQueue{在两端出入的List,所以也可以用数组或链表来实现Map⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧HashMap⎩⎪⎪⎪⎨⎪⎪⎪⎧键不可重复,值可重复底层Hash表线程不安全允许key为null,也允许value为nullHashTable⎩⎪⎪⎪⎨⎪⎪⎪⎧键不可重复,值可重复底层Hash表线程安全key和value都不允许为nullTreeMap{键不可重复,值可重复底层二叉树