File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2424
2525## Collection
2626
27- <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/73403d84-d921-49f1-93a9-d8fe050f3497 .png " width = " 800px " > </div ><br >
27+ <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/image-20191208220948084 .png " / > </div ><br >
2828
2929### 1. Set
3030
3131- TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。
3232
3333- HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。
3434
35- - LinkedHashSet:具有 HashSet 的查找效率,且内部使用双向链表维护元素的插入顺序 。
35+ - LinkedHashSet:具有 HashSet 的查找效率,并且内部使用双向链表维护元素的插入顺序 。
3636
3737### 2. List
3838
5050
5151## Map
5252
53- <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/774d756b-902a-41a3-a3fd-81ca3ef688dc .png " width = " 500px " > </div ><br >
53+ <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/image-20191208224757855 .png " / > </div ><br >
5454
5555- TreeMap:基于红黑树实现。
5656
5757- HashMap:基于哈希表实现。
5858
59- - Hashtable :和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程可以同时写入 Hashtable 并且不会导致数据不一致 。它是遗留类,不应该去使用它。现在可以使用 ConcurrentHashMap 来支持线程安全,并且 ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。
59+ - HashTable :和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程同时写入 HashTable 不会导致数据不一致 。它是遗留类,不应该去使用它,而是使用 ConcurrentHashMap 来支持线程安全,ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。
6060
6161- LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。
6262
Original file line number Diff line number Diff line change 2424
2525## Collection
2626
27- <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/73403d84-d921-49f1-93a9-d8fe050f3497 .png " width = " 800px " > </div ><br >
27+ <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/image-20191208220948084 .png " / > </div ><br >
2828
2929### 1. Set
3030
3131- TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。
3232
3333- HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。
3434
35- - LinkedHashSet:具有 HashSet 的查找效率,且内部使用双向链表维护元素的插入顺序 。
35+ - LinkedHashSet:具有 HashSet 的查找效率,并且内部使用双向链表维护元素的插入顺序 。
3636
3737### 2. List
3838
5050
5151## Map
5252
53- <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/774d756b-902a-41a3-a3fd-81ca3ef688dc .png " width = " 500px " > </div ><br >
53+ <div align =" center " > <img src =" https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/image-20191208224757855 .png " / > </div ><br >
5454
5555- TreeMap:基于红黑树实现。
5656
5757- HashMap:基于哈希表实现。
5858
59- - Hashtable :和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程可以同时写入 Hashtable 并且不会导致数据不一致 。它是遗留类,不应该去使用它。现在可以使用 ConcurrentHashMap 来支持线程安全,并且 ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。
59+ - HashTable :和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程同时写入 HashTable 不会导致数据不一致 。它是遗留类,不应该去使用它,而是使用 ConcurrentHashMap 来支持线程安全,ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。
6060
6161- LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。
6262
You can’t perform that action at this time.
0 commit comments