Java之三大集合框架
Java之三大集合框架
今天來說說JAVA的集合框架那那些事兒~
首先要知道集合框架是支援泛型技術的
一、List集合
a) A)List的超級父類:Collection
b) ArrayList(重點)
i. 儲存資料的方式:底層還是通過陣列方式來儲存
ii. List集合中,如果定義集合物件的時候,不確定型別,則什麼型別物件都可以直接儲存進去,取出來統一都是Object,後續需要自己手動強轉指定型別
iii. 集合設計:泛型方式進行型別指定
1. List<具體型別>
2. 特點:有序佇列、可重複的容器
iv. 其他的API
1. 對集合的操作:增(往容器中新增元素) : add add addAll
刪(刪除指定元素):remove removeAll clear
查(獲取指定元素):get
改(更新指定元素):set
2. 其他:獲取大小:size 判斷是否包含:containts indexOf
例如:
執行結果:public class Test { public static void main(String[] args) { ArrayList<String> list=new ArrayList<String>(); ArrayList<String> list1=new ArrayList<String>(); //往佇列容器中新增元素 list.add("list"); list.add("arraylist"); list.add("setlist"); //獲取指定位置的元素 System.out.println(list.get(1)); //輸出佇列所有元素 System.out.println(list); //獲取首次出現的指定元素的索引 System.out.println(list.indexOf("setlist")); //獲取最後一次出現的指定元素的索引 System.out.println(list.lastIndexOf("arraylist")); //校驗指定元素是否在該佇列中 System.out.println(list.contains("list")); //將list中指定元素加入到list1中 list1.add("list"); System.out.println(list1); //將list列表中元素全部加入list1中 list1.addAll(list); System.out.println(list1); //用指定元素代替列表中指定位置的元素 //list.set(1,"how"); //System.out.println(list); //該列表的大小 System.out.println(list.size()); //清除指定位置的元素 System.out.println(list.remove(0)); //輸出清除後的佇列所有元素 System.out.println(list); //清空佇列 list.clear(); System.out.println(list); //判斷該列表是否為空 System.out.println(list.isEmpty()); } }
arraylist
[list, arraylist, setlist]
2
1
true
[list]
[list, list, arraylist, setlist]
3
list
[arraylist, setlist]
[]
true
二、Set集合
c) Set的超級父介面類:Collection
d) Set的相關理解
i. 特點:元素不可重複、無序的
ii. 遍歷元素:迭代(迭代器)
iii. 注意:底層並非真正無序,還是遵循hash演算法來保證儲存順序(但是我們作為使用者,就理解為無序)
集合中是不能有重複元素,如果你新增一個重複元素進去,就加不進去
e) 常用API操作:增刪查
例如:
public class Test {
public static void main(String[] args) {
HashSet<String> set=new HashSet<String>();
set.add("China");
set.add("Jpan");
set.add("USA");
set.add("England");
//驗證set集合元素不能重複
boolean value=set.add("USA");
System.out.println(set.size());
//校驗該集合中是否包含指定元素
System.out.println(set.contains("China"));
System.out.println(set);
System.out.println(value);
//清除指定元素
System.out.println(set.remove("USA"));
//如何遍歷集合
//1獲取set迭代器
Iterator<String> ite=set.iterator();
//判斷set集合中是否有下一個元素
while(ite.hasNext()){
String str=ite.next();
System.out.println(str);
}
set.clear();
System.out.println(set);
}
}
執行結果:
4
true
[Jpan, USA, China, England]
false
true
Jpan
China
England
[]
三、Map集合
a) Map集合:不是collection的直接介面子類
b) 使用方式
i. 底層使用機制:k+v的儲存方式:鍵值對
ii. 一條資料,是由兩部分組成:鍵和值
iii. 如何遍歷map集合
iv. 如果說放(put)了一個相同的鍵到map中,則新元素會替換原來的元素,會把替換掉的元素返回出來,你可以接收到,並做後續處理
例如:
public class Test {
public static void main(String[] args) {
HashMap<String,String> map=new HashMap<String,String>();
//增刪查改操作
map.put("a", "China");
map.put("b","Indian");
map.put("c","Itey");
map.put("d","Canada");
//輸出該集合
System.out.println(map);
//體現可重複性(替換)
String old=map.put("b","USA");
//替換後的集合輸出
System.out.println(map);
//獲取指定元素
System.out.println(map.get("d"));
//獲取代換的元素
System.out.println(old);
//遍歷map,通過鍵取值
//1.獲取所有的鍵
Set<String> keys=map.keySet();
//2.獲取鍵集合的迭代器
Iterator<String> ite=keys.iterator();
//3.迭代器的集合
while(ite.hasNext()){
String key=ite.next();
//相應鍵對應的值
String value=map.get(key);
//輸出鍵
System.out.println(key);
//輸出值
System.out.println(value);
}
}
}
執行結果:
{a=China, b=Indian, c=Itey, d=Canada}
{a=China, b=USA, c=Itey, d=Canada}
Canada
Indian
a
China
b
USA
c
Itey
d
Canada