Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 23efacc

Browse files
Update java集合框架基础知识&面试题总结.md
1 parent a26ff09 commit 23efacc

File tree

1 file changed

+3
-56
lines changed

1 file changed

+3
-56
lines changed

‎docs/java/collection/java集合框架基础知识&面试题总结.md‎

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,3 @@
1-
<!-- TOC -->
2-
3-
- [1. 剖析面试最常见问题之 Java 集合框架](#1-剖析面试最常见问题之-java-集合框架)
4-
- [1.1. 集合概述](#11-集合概述)
5-
- [1.1.1. Java 集合概览](#111-java-集合概览)
6-
- [1.1.2. 说说 List, Set, Queue, Map 四者的区别?](#112-说说-list-set-queue-map-四者的区别)
7-
- [1.1.3. 集合框架底层数据结构总结](#113-集合框架底层数据结构总结)
8-
- [1.1.3.1. List](#1131-list)
9-
- [1.1.3.2. Set](#1132-set)
10-
- [1.1.3.3 Queue](#1133-queue)
11-
- [1.1.3.4. Map](#1134-map)
12-
- [1.1.4. 如何选用集合?](#114-如何选用集合)
13-
- [1.1.5. 为什么要使用集合?](#115-为什么要使用集合)
14-
- [1.2. Collection 子接口之 List](#12-collection-子接口之-list)
15-
- [1.2.1. Arraylist 和 Vector 的区别?](#121-arraylist-和-vector-的区别)
16-
- [1.2.2. Arraylist 与 LinkedList 区别?](#122-arraylist-与-linkedlist-区别)
17-
- [1.2.2.1. 补充内容:双向链表和双向循环链表](#1221-补充内容双向链表和双向循环链表)
18-
- [1.2.2.2. 补充内容:RandomAccess 接口](#1222-补充内容randomaccess-接口)
19-
- [1.2.3. 说一说 ArrayList 的扩容机制吧](#123-说一说-arraylist-的扩容机制吧)
20-
- [1.3. Collection 子接口之 Set](#13-collection-子接口之-set)
21-
- [1.3.1. comparable 和 Comparator 的区别](#131-comparable-和-comparator-的区别)
22-
- [1.3.1.1. Comparator 定制排序](#1311-comparator-定制排序)
23-
- [1.3.1.2. 重写 compareTo 方法实现按年龄来排序](#1312-重写-compareto-方法实现按年龄来排序)
24-
- [1.3.2. 无序性和不可重复性的含义是什么](#132-无序性和不可重复性的含义是什么)
25-
- [1.3.3. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同](#133-比较-hashsetlinkedhashset-和-treeset-三者的异同)
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-同步控制)
49-
50-
<!-- /TOC -->
51-
521
# 1. 剖析面试最常见问题之 Java 集合框架
532

543
## 1.1. 集合概述
@@ -309,11 +258,9 @@ Output:
309258

310259
### 1.3.3. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
311260

312-
`HashSet``Set` 接口的主要实现类 ,`HashSet` 的底层是 `HashMap`,线程不安全的,可以存储 null 值;
313-
314-
`LinkedHashSet``HashSet` 的子类,能够按照添加的顺序遍历;
315-
316-
`TreeSet` 底层使用红黑树,元素是有序的,排序的方式有自然排序和定制排序。
261+
- `HashSet``LinkedHashSet``TreeSet` 都是 `Set` 接口的实现类,都能保证元素唯一,并且都不是线程安全的。
262+
- `HashSet``LinkedHashSet``TreeSet` 的主要区别在于底层数据结构不同。`HashSet` 的底层数据结构是哈希表(基于 `HashMap` 实现)。`LinkedHashSet` 的底层数据结构是链表和哈希表,元素的插入和取出顺序满足 FIFO。`TreeSet` 底层数据结构是红黑树,元素是有序的,排序的方式有自然排序和定制排序。
263+
- 底层数据结构不同又导致这三者的应用场景不同。`HashSet` 用于不需要保证元素插入和取出顺序的场景,`LinkHashSet` 用于保证元素的插入和取出顺序满足 FIFO 的场景,`TreeSet` 用于支持对元素自定义排序规则的场景。
317264

318265
## 1.4 Collection 子接口之 Queue
319266

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /