List:數(shù)據(jù)是有順序(添加的先后順序)的,數(shù)據(jù)是可以重復(fù)的
ArrayList:內(nèi)部結(jié)構(gòu)是數(shù)組,比較適合做高頻率的查找、遍歷
LinkedList:雙向鏈表,比較適合做高頻率的新增和刪除
繼承和實(shí)現(xiàn)叫功能的擴(kuò)展(子類獨(dú)有的方法)
面試題
Collection和map接口的區(qū)別
Collection是存儲單值的最大父接口
Map是存儲對值的最大父接口
ArrayList和LinkedList的區(qū)別
ArrayList和Vector的區(qū)別
Vector幾乎和ArrayList一模一樣
ArrayList是線程異步,線程不安全
Vector是線程同步,線程安全
Collection接口下的兩個子接口:
List:有順序,元素可以重復(fù),順序指的是添加的先后順序
Set:無序,元素不可以重復(fù),順序指的是添加的先后順序
List和Set的區(qū)別
Set其實(shí)是有順序的,內(nèi)部有一個專門排序的算法
- 無序不等于隨機(jī)
- 所謂的無序指的是沒有按照添加的先后順序,其實(shí)內(nèi)部是做了排序的
引用數(shù)據(jù)類型
set集合所謂的不能重復(fù),默認(rèn)情況下是比較地址
Set集合如何確保數(shù)據(jù)的不重復(fù)?
保證數(shù)據(jù)類型的類要重寫hashCode和equals方法。
TreeSet(可以排序的Set集合)
排序規(guī)則:要排序的對象的類必須實(shí)
現(xiàn)Comparable接口(泛型接口)
CompareTo方法:
返回值是int類型,代表排序結(jié)果
負(fù)數(shù)-1:代表比較的兩個值
0:代表兩個值相等
正數(shù)1:代表變焦的兩個值調(diào)用者大
LinkedHashSet:在添加數(shù)據(jù)的同時維護(hù)數(shù)據(jù)的
HashSet和LinkedHashSet的區(qū)別和聯(lián)系?
比較接口:
Comparable接口:自然排序,排序規(guī)則是固定的。
Comparator接口:臨時排序
實(shí)例

Map接口(泛型接口)
- 存儲對值 K -V
- key不能重復(fù),value可以重復(fù)
- 沒有順序(添加的先后順序)
HashMap內(nèi)部存儲結(jié)構(gòu):
Jdk1.7之前:鏈表 + 二叉樹
Jdk1.7及之后鏈表 + 數(shù)組 + 紅黑樹
HashMap基本上面試90%會問原理。
Hashtable和HashMap區(qū)別:
- HashMap是線程同步,線程不安全的。Hashtable是線程異步,線程安全的
- HashMap的key是可以為null的。Hashtable的key是不可以為null的
Properties:屬性
Properties是Hashtable的子類,更多的是用來操作屬性文件。
List集合的遍歷
1.for循環(huán)

2.foreach語句 增強(qiáng)for循環(huán)

3.迭代器 Iterator

Set集合的遍歷
1.增強(qiáng)for循環(huán)

2.迭代器

Map集合的遍歷
1.for循環(huán)

2.增強(qiáng)for循環(huán)

3.增強(qiáng)for循環(huán)(Entry)

4.迭代器

今天跟新伙伴努力學(xué)習(xí)!
浙公網(wǎng)安備 33010602011771號