集合
- 數(shù)組: 相同類型,長度固定老充,有序
- 集合: 保存一系列任意類型元素且長度不固定的容器
- 特點(diǎn)
1.元素類型是任意
2.長度不固定
3.必須是對象
- 包:java.util
Collection 接口
jdk1.5:自動包裝與自動解包裝
針對基本類型和它對應(yīng)的引用類型的互相轉(zhuǎn)換
如:
int Integer
int i = 10;
Integer a1 = new Integer(i);
Integer a2 = Integer.valueOf(i);
int j = a1.intValue();
Integer a3 = 3;
j = a1;
jdk幫助自動完成
- Set:
???1.無序
???2.不重復(fù)Hashset:查詢效率很快瘫证,用hash算法
- 先判斷2個對象是否相等: 先判斷hashCode(可重寫)方法是否相等揉阎,如果相等那么繼續(xù)判斷equals(可重寫)方法。
Treeset:底層是紅黑樹實(shí)現(xiàn)的 排序集合里的元素
- 集合里的元素原來是無序的
- 排序規(guī)則是可以自定義的
Comparable:自然排序 默認(rèn)請款下背捌,集合里面的對象需要實(shí)現(xiàn)該接口毙籽。
排序規(guī)則定義在compareTo方法之內(nèi)
public int compareTo(Object o)
當(dāng)前對象代表插入元素
參數(shù)o代表容器里面的元素
如果返回值是負(fù)數(shù),那么放左邊
如果是正數(shù)毡庆, 那么放右邊
如果是0坑赡,不放入集合中
Comparator:比較器排序
- List:
???1.有序
???2.重復(fù)ArrayList:底層使用數(shù)組實(shí)現(xiàn),查詢速度快
LinkedList:底層使用鏈表實(shí)現(xiàn)么抗,增刪改效率高
- Map:
???字典
???鍵值對(key,value)
???1.鍵是唯一的毅否,值可以重復(fù)
???2.如果存放相同的鍵值對,會進(jìn)行覆蓋值HashMap:查詢速度快蝇刀,鍵和值可以為null
TreeMap:根據(jù)鍵排序
- 迭代器
???遍歷訪問集合的方式
???如果集合想要使用迭代器螟加,必須要實(shí)現(xiàn)Iterator接口