1、物件的儲存:陣列(基本資料型別&引用資料型別)、集合(引用資料型別)
>陣列儲存資料的弊端:長度一旦初始化以後,就不可變;真正給陣列元素賦值的個數沒有現成的方法可用。
2、集合框架
collection介面:
|----list介面:儲存有序的,可以重複的元素,相當於「動態」陣列;新增進list集合中的元素(或物件)所在的類一定要重寫 equals()方法。
|------arraylist(主要實現類)
|------linkedlist(更適用於頻繁的插入、刪除操作)
|------vector(古老的實現類、執行緒安全的,但效率低於arraylist)
|----set介面:儲存無序的、不可重複的元素。使用的方法基本上都是collection介面下定義的;新增進set集合中的元素所在的 類一定要重寫equals()方法和hashcode()方法。
|------hashset(主要的實現類)
|------linkedhashset(是hashset的子類,當我們遍歷集合元素時,是按照新增進去的順序實現的;適用於頻繁的遍 歷,較少的新增、插入操作)
|------treeset(可以按照新增進集合中元素的指定屬性進行排序)
>要求treeset新增進的元素必須是同乙個類的
>自然排序:要求新增進treeset中的元素所在類implements comparable介面,重寫compareto(object obj)方法,在此方法內指明按照元素的哪個屬性進行排序,若不實現此介面會報執行時異常。
定製排序: 建立乙個實現comparator介面的實現類物件,在實現類中重寫compare(object o1,object o2
)方法,在此方法中指明按照元素所在類的哪個屬性進行排序,將實現comparator介面的實現類物件作為形參傳遞給treeset的構造器,然後新增元素即可。
>要求重寫的compareto和compare與equals和hashcode方法保持一致。
map介面:儲存「鍵-值」對的資料,key是不可重複的,使用set存放;value是可以重複的,使用collection來存放。乙個key-value對構成乙個entry(map.entry),entry使用set來存放。
主要的方法:put(object key,object value) 刪除remove(object key) 獲取get(object key) ,keyset() values() entryset()
|------hashmap:主要實現類
|------linkedhashmap:是hashmap的子類,可以按照新增進map的順序實現遍歷
|------treemap:需要安裝key所在類的指定屬性進行排序,要求key是同乙個類的物件。
|------hashtable:是乙個古老的實現類,執行緒安全的,不可以新增null鍵,null值
|------子類:properties:常用來處理屬性檔案
iterator介面:用來遍歷集合collection元素
collections工具類:操作collection以及map工具類,大部分為static方法。
Java基礎 集合
1 集合的型別和各自的特性 collection 單列集合 list 有儲存順序 可重複 arraylist 陣列實現,查詢快,增刪慢,由於是陣列實現,在增和刪的時候會牽扯到陣列增容,以及拷貝元素 所以慢。陣列是可以直接按索引查詢,所以查詢時較快 linkedlist 鍊錶實現,增刪快,查詢慢由於鍊...
java基礎 集合1
1 陣列和集合的區別,陣列存放同一型別的物件,集合可以存放不同型別的物件 陣列長度一定,集合長度不一定 2 資料在記憶體中的儲存結構稱為資料結構 3 集合和陣列存放的都是物件的位址 4 list有序 可以重複的 凡是可以操作角標的方法都是特有方法,增刪改查 增 add addall 刪 remove...
java基礎之集合
1.collectiton 單列儲存集合 list 元素是有序的,元素可以重複。因為該集合體系有索引 arraylist 底層的資料結構使用的是陣列結構 特點 陣列元素查詢很快,但是增刪很慢,因為增刪乙個元素,陣列後面的其他元素都需要變動,執行緒不同步 linklist 底層的資料結構使用的是鍊錶資...