|
3 | 3 | - [1. 剖析面试最常见问题之 Java 集合框架](#1-剖析面试最常见问题之-java-集合框架) |
4 | 4 | - [1.1. 集合概述](#11-集合概述) |
5 | 5 | - [1.1.1. Java 集合概览](#111-java-集合概览) |
6 | | - - [1.1.2. 说说 List,Set,Map 三者的区别?](#112-说说-listsetmap-三者的区别) |
| 6 | + - [1.1.2. 说说 List, Set, Queue, Map 四者的区别?](#112-说说-list-set-queue-map-四者的区别) |
7 | 7 | - [1.1.3. 集合框架底层数据结构总结](#113-集合框架底层数据结构总结) |
8 | 8 | - [1.1.3.1. List](#1131-list) |
9 | 9 | - [1.1.3.2. Set](#1132-set) |
10 | | - - [1.1.3.3. Map](#1133-map) |
| 10 | + - [1.1.3.3 Queue](#1133-queue) |
| 11 | + - [1.1.3.4. Map](#1134-map) |
11 | 12 | - [1.1.4. 如何选用集合?](#114-如何选用集合) |
12 | 13 | - [1.1.5. 为什么要使用集合?](#115-为什么要使用集合) |
13 | 14 | - [1.2. Collection 子接口之 List](#12-collection-子接口之-list) |
|
22 | 23 | - [1.3.1.2. 重写 compareTo 方法实现按年龄来排序](#1312-重写-compareto-方法实现按年龄来排序) |
23 | 24 | - [1.3.2. 无序性和不可重复性的含义是什么](#132-无序性和不可重复性的含义是什么) |
24 | 25 | - [1.3.3. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同](#133-比较-hashsetlinkedhashset-和-treeset-三者的异同) |
25 | | - - [1.4. Map 接口](#14-map-接口) |
26 | | - - [1.4.1. HashMap 和 Hashtable 的区别](#141-hashmap-和-hashtable-的区别) |
27 | | - - [1.4.2. HashMap 和 HashSet 区别](#142-hashmap-和-hashset-区别) |
28 | | - - [1.4.3. HashMap 和 TreeMap 区别](#143-hashmap-和-treemap-区别) |
29 | | - - [1.4.4. HashSet 如何检查重复](#144-hashset-如何检查重复) |
30 | | - - [1.4.5. HashMap 的底层实现](#145-hashmap-的底层实现) |
31 | | - - [1.4.5.1. JDK1.8 之前](#1451-jdk18-之前) |
32 | | - - [1.4.5.2. JDK1.8 之后](#1452-jdk18-之后) |
33 | | - - [1.4.6. HashMap 的长度为什么是 2 的幂次方](#146-hashmap-的长度为什么是-2-的幂次方) |
34 | | - - [1.4.7. HashMap 多线程操作导致死循环问题](#147-hashmap-多线程操作导致死循环问题) |
35 | | - - [1.4.8. HashMap 有哪几种常见的遍历方式?](#148-hashmap-有哪几种常见的遍历方式) |
36 | | - - [1.4.9. ConcurrentHashMap 和 Hashtable 的区别](#149-concurrenthashmap-和-hashtable-的区别) |
37 | | - - [1.4.10. ConcurrentHashMap 线程安全的具体实现方式/底层具体实现](#1410-concurrenthashmap-线程安全的具体实现方式底层具体实现) |
38 | | - - [1.4.10.1. JDK1.7(上面有示意图)](#14101-jdk17上面有示意图) |
39 | | - - [1.4.10.2. JDK1.8 (上面有示意图)](#14102-jdk18-上面有示意图) |
40 | | - - [1.5. Collections 工具类](#15-collections-工具类) |
41 | | - - [1.5.1. 排序操作](#151-排序操作) |
42 | | - - [1.5.2. 查找,替换操作](#152-查找替换操作) |
43 | | - - [1.5.3. 同步控制](#153-同步控制) |
| 26 | + - [1.4 Collection 子接口之 Queue](#14-collection-子接口之-queue) |
| 27 | + - [1.4.1 Queue 与 Deque 的区别](#141-queue-与-deque-的区别) |
| 28 | + - [1.4.2 ArrayDeque 与 LinkedList 的区别](#142-arraydeque-与-linkedlist-的区别) |
| 29 | + - [1.4.3 说一说 PriorityQueue](#143-说一说-priorityqueue) |
| 30 | + - [1.5. Map 接口](#15-map-接口) |
| 31 | + - [1.5.1. HashMap 和 Hashtable 的区别](#151-hashmap-和-hashtable-的区别) |
| 32 | + - [1.5.2. HashMap 和 HashSet 区别](#152-hashmap-和-hashset-区别) |
| 33 | + - [1.5.3. HashMap 和 TreeMap 区别](#153-hashmap-和-treemap-区别) |
| 34 | + - [1.5.4. HashSet 如何检查重复](#154-hashset-如何检查重复) |
| 35 | + - [1.5.5. HashMap 的底层实现](#155-hashmap-的底层实现) |
| 36 | + - [1.5.5.1. JDK1.8 之前](#1551-jdk18-之前) |
| 37 | + - [1.5.5.2. JDK1.8 之后](#1552-jdk18-之后) |
| 38 | + - [1.5.6. HashMap 的长度为什么是 2 的幂次方](#156-hashmap-的长度为什么是-2-的幂次方) |
| 39 | + - [1.5.7. HashMap 多线程操作导致死循环问题](#157-hashmap-多线程操作导致死循环问题) |
| 40 | + - [1.5.8. HashMap 有哪几种常见的遍历方式?](#158-hashmap-有哪几种常见的遍历方式) |
| 41 | + - [1.5.9. ConcurrentHashMap 和 Hashtable 的区别](#159-concurrenthashmap-和-hashtable-的区别) |
| 42 | + - [1.5.10. ConcurrentHashMap 线程安全的具体实现方式/底层具体实现](#1510-concurrenthashmap-线程安全的具体实现方式底层具体实现) |
| 43 | + - [1.5.10.1. JDK1.7(上面有示意图)](#15101-jdk17上面有示意图) |
| 44 | + - [1.5.10.2. JDK1.8 (上面有示意图)](#15102-jdk18-上面有示意图) |
| 45 | + - [1.6. Collections 工具类](#16-collections-工具类) |
| 46 | + - [1.6.1. 排序操作](#161-排序操作) |
| 47 | + - [1.6.2. 查找,替换操作](#162-查找替换操作) |
| 48 | + - [1.6.3. 同步控制](#163-同步控制) |
44 | 49 |
|
45 | 50 | <!-- /TOC --> |
46 | 51 |
|
|
0 commit comments