1. 程式人生 > >Java之三大集合框架

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