JAVA中的三大集合框架
一、List集合
1、List實現的超級父類介面:Collection
2、瞭解ArrayList類
A):定義的格式:ArrayList<具體型別> 集合名 = new ArrayList<具體型別>();
B):資料的儲存方式:底層還是用陣列儲存
C):物件的型別:在List集合中,如果定義集合物件時沒有定義定義物件的型別,就表示什麼型別的物件都可以直接儲存到List集合中,如果想要運用裡面的元素,則需要用instanceof來判斷元素的型別。格式 :元素 instanceof 所判斷的型別;返回true或false。後續需要強轉。
D):集合的設計:泛型的方式進行型別指定,
特點:元素有序、可重複,可變大小的容器
遍歷:for迴圈即可
E):基本操作:
增加:集合名.add(元素); 加在集合最後,
集合名.add(數字,元素); 載入指定的位置
集合名.addAll(另一個集合名); 加在最後
集合名.addAll(數字,另一個集合名); 載入指定位置
刪除:集合名.remove(數字); 移去指定位置的元素
集合名.remove(元素); 移去集合中第一次出現的指定元素(如果存在)
集合名.removeALL(另一個集合名); 移去另一個集合中的所有元素
集合名
集合名.clear(); 清空集合
判斷/獲得:集合名.get(數字); 獲得指定位置的元素
集合名.contains(元素); 判斷集合是否包含該元素,是則返回true
集合名.contains(另一個集合名); 判斷是否包含另一個集合的所有元素
集合名.indexOf(元素); 返回該元素的索引,無則返回-1
集合名.equals(元素);
判斷該元素是否與集合的元素一致 返回true
改:集合名.set(數字,元素); 用該元素替換指定位置的元素
其它:集合名.size(); 獲取集合的大小
二、Set集合
1、Set實現的超級父類介面:Collection
2、瞭解HashSet類
A):定義的格式: HashSet<具體型別> 集合名 = HashSet<具體型別>();
B):資料的儲存方式:遵循Hash演算法來儲存資料
C):物件的型別:必須要定義集合物件型別,否則會影響後續的使用
D):集合的設計:泛型的方式進行型別指定:HashSet<具體型別>
特點:元素無序、不可重複,可變大小的容器
注意:底層並非真正的無序,遵循Hash演算法來保證資料的儲存,但是我們作為使用者,就理解為無序
遍歷:需要使用迭代器:Iterator<型別> 名稱 = 集合名.iterator();
E):基本操作:
增加:集合名.add(元素); 新增指定元素(之前集合不過包含的)
刪除:集合名.remove(元素); 移去指定的元素
集合名.clear(); 清空集合
判斷:集合名.containts(元素); 如果集合包含此元素,返回true
其它:集合名.size(); 獲得集合的大小
Iterator<型別> 名稱 = 集合名.iterator(); 用於集合的遍歷
三、Map集合
1、Map沒有實現的超級父類介面,不是Collection的直接介面子類
2、瞭解HashMap類
A):定義的格式:HashMap<型別,型別> 集合名 = new HashMap<型別,型別>();
B):資料的儲存方法:key+value的儲存方式
C):物件的型別:必須要定義集合物件型別,否則會影響後續的使用
D)集合的設計:泛型的方式進行型別的指定:HashMap<具體型別>
特點:一條資料,是由兩部分組成:鍵和值,元素無序、不可重複,可變大小的容器
遍歷:需要使用鍵的迭代器 Set<型別> 名稱1 = 集合名.keySet();
Iterator<型別> 名稱 = 名稱1.iterator();
E):基本操作
增加:集合名.put(鍵,值); 在此對映中關聯指定值與指定鍵(是put,不是add)
刪除:集合名.remove(鍵); 從對映中移除指定鍵的對映關係(如果存在)
判斷:集合名.containsKey(鍵); 如果此對映包含對於指定鍵的對映關係,返回true
集合名.containsValue(值); 如果此對映將一個或多個鍵對映到指定值,返回true
其它:集合名.size(); 獲得集合的大小
注意:在Map集合中,一個鍵只能對應有一個值,但一個值可以有多個鍵對應,如果說放(put)了一個相同的鍵到map中,則新元素會替換原來的元素,會把替換掉的元素返回出來,你可以接收到,並做後續處理