diff --git a/notes/Java 集合.md b/notes/Java 集合.md new file mode 100644 index 00000000..b6d0616b --- /dev/null +++ b/notes/Java 集合.md @@ -0,0 +1,152 @@ + +* [](#) + * [1. List](#1-list) + * [2. Set](#2-set) + * [3. Queue](#3-queue) + * [4. Map](#4-map) + * [5. Java 1.0/1.1 ](#5-java-1011-) +* [еģʽ](#еģʽ) + * [1. ģʽ](#1-ģʽ) + * [2. ģʽ](#2-ģʽ) +* [ɢ](#ɢ) +* [Դ](#Դ) + * [1. ArraList](#1-arralist) + * [2. LinkedList](#2-linkedlist) + * [3. Vector](#3-vector) + * [4. HashMap](#4-hashmap) + * [5. LinkedHashMap](#5-linkedhashmap) + * [6. ConcurrentHashMap](#6-concurrenthashmap) +* [ο](#ο) + + +# + +![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/ebf03f56-f957-4435-9f8f-0f605661484d.jpg) + +Ҫ Collection Map ֣Collection ְ ListSet Լ Queue + +## 1. List + +- ArrayListʹ鷽֧ʣ + +- LinkedListʹʵֻ֣˳ʣǿԿٵмɾԪءˣLinkedList ջк˫˶С + +## 2. Set + +- HashSetʹ Hash ʵֿ֣֧ٲңʧȥԣ + +- TreeSetʹʵ֣򣬵DzЧʲ HashSet + +- LinkedListHashSet HashSet IJЧʣڲʹάԪصIJ˳˾ԡ + +## 3. Queue + +ֻʵ֣LinkedList PriorityQueue LinkedList ֧˫С + +## 4. Map + +- HashMapʹ Hash ʵ + +- LinkedHashMap˳Ϊ˳ʹãLRU˳ + +- TreeMapںʵ + +- ConcurrentHashMap̰߳ȫ Map漰ͬ + +## 5. Java 1.0/1.1 + +ھɵǾӦʹǣֻҪǽ˽⡣ + +- Vector ArrayList ƣ̰߳ȫ + +- HashTable HashMap ƣ̰߳ȫ + +# еģʽ + +## 1. ģʽ + +ӸͼԿÿ඼һ Iterator 󣬿ͨеԪء + +[Java еĵģʽ](https://github.com/CyC2018/InterviewNotes/blob/master/notes/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#92-java-%E5%86%85%E7%BD%AE%E7%9A%84%E8%BF%AD%E4%BB%A3%E5%99%A8) + +## 2. ģʽ + +java.util.Arrays#asList() ԰תΪ List ͡ + +```java + List list = Arrays.asList(1, 2, 3); + int[] arr = {1, 2, 3}; + list = Arrays.asList(arr); +``` + +# ɢ + +ʹ hasCode() ɢֵʹõǶĵַ + + equals() жǷȵģȵɢֵһҪͬɢֵͬһȡ + +ȱʣ + +1. Է +2. Գ +3. +4. һԣε x.equals(y)䣩 +5. κβ null Ķ x x.equals(nul) Ϊ false + +# Դ + +Ķ [㷨-](https://github.com/CyC2018/InterviewNotes/blob/master/notes/%E7%AE%97%E6%B3%95.md#%E7%AC%AC%E4%B8%89%E7%AB%A0-%E6%9F%A5%E6%89%BE) ֣ԼԴкܴ + + +Դأ[OpenJDK 1.7](http://download.java.net/openjdk/jdk7) + +Ķ[7u40-b43](http://grepcode.com/snapshot/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/) + +## 1. ArraList + +- ʹʵ + +- ж̬ԣĬΪ 10Ԫʱʹ ensureCapacity() ֤㹻Ϊԭʼ 1.5 times + 1. + +[ArraList.java](https://github.com/CyC2018/InterviewNotes/blob/master/notes/src/ArrayList.java) + + +## 2. LinkedList + +- LinkedList ǻ˫ѭʵ֣ͷ㲻ݡ + +![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/d40c90ad-7943-4574-98a8-8027e5523d53.jpg) + +- ҪLinkedList Entry entry(int index) һŻIJ index ǰ棬ôʹͷںʹӺǰ + +[LinkedList.java](https://github.com/CyC2018/InterviewNotes/blob/master/notes/src/LinkedList.java) + +## 3. Vector + +Vector ĺܶʵַͬ䣬̰߳ȫġ + +[Vector.java](https://github.com/CyC2018/InterviewNotes/blob/master/notes/src/Vector.java) + +## 4. HashMap + +- ʹͻ + +[Vector.java](https://github.com/CyC2018/InterviewNotes/blob/master/notes/src/HashMap.java) + + +## 5. LinkedHashMap + +- ʹ˫Ľڵ㣬Ӷάһ˳ +- עԴеaccessOrder־λfalseʱʾ˫еԪذEntryLinkedHashMapеȺ˳򣬼ÿputLinkedHashMapеEntry˫β˫ʱEntry˳Ͳ˳һ£ҲĬϵ˫Ĵ洢˳򣻵Ϊtrueʱʾ˫еԪذշʵȺ˳УԿȻEntry˳ȻǰputLinkedHashMapе˳򣬵putgetеrecordAccessputkeyͬԭеEntryµrecordAccess÷жaccessOrderǷΪtrueǣ򽫵ǰʵEntryputEntrygetEntryƵ˫βkeyͬʱputEntryʱaddEntrycreatEntry÷ͬ²Ԫط뵽˫βȷϲȺ˳ַϷʵȺ˳ΪʱEntryҲˣʲôҲ˵˵LinkedHashMapʵLRUġȣaccessOrderΪtrueʱŻῪ˳ģʽʵLRU㷨ǿԿputgetᵼĿEntryΪʵEntry˱ѸEntry뵽˫ĩβgetͨrecordAccessʵ֣putڸkey£ҲͨrecordAccessʵ֣ڲµEntryʱͨcreateEntryеaddBeforeʵ֣ʹ˵Entry뵽˫ĺ棬β˫ǰEntryûʹõģڵʱɾǰEntry(headǸEntry)ʹõEntry + +[LinkedHashMap.java](https://github.com/CyC2018/InterviewNotes/blob/master/notes/src/HashMap.java) + +## 6. ConcurrentHashMap + +[̽ ConcurrentHashMap ߲Եʵֻ](https://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/) + +[ConcurrentHashMap.java](https://github.com/CyC2018/InterviewNotes/blob/master/notes/src/HashMap.java) + +# ο + +- Java ˼