91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java集合類知識點有哪些

發布時間:2021-08-17 10:36:11 來源:億速云 閱讀:141 作者:小新 欄目:編程語言

小編給大家分享一下Java集合類知識點有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

集合:只能存儲對象,對象類型可以不一樣,長度可變。

常用的接口和類:

1、List接口(有序、可重復):ArrayList類、LinkedList、Vector類

2、Set接口(無序、不能重復):HashSet類、TreeSet類

3、Map接口(鍵值對、鍵唯一、值不唯一):HashMap類、Hashtable類、TreeMap類

集合類的循環遍歷

1、普通for循環:如 for(int i=0;i<arr.size();i++){…}

2、foreach(增強型for循環):如 for(Object i:arr){…}

3、Iterator(迭代器):如 Iterator it = arr.iterator();while(it.hasNext()){ Object o =it.next(); …}

注意:無法在遍歷的過程中對數組或者集合進行修改,而for循環可以在遍歷的過程中對源數組或者集合進行修改

ArrayList、LinkedList和Vector的區別

ArrayList:效率高,多用于查詢

LinkedList:多用于插入和刪除

Vector:線程安全,多用于查詢

代碼:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

public class ListTest {
	public static void main(String[] args){
		List arrayList=new ArrayList();
		List linkedList=new LinkedList();
		List vector=new Vector();
		
		arrayList.add("1"); //字符類型
		arrayList.add("1"); //重復元素
		arrayList.add("2");
		arrayList.add(1); //數字類型
		
		linkedList.add("1");
		linkedList.add("1");
		linkedList.add("2");
		linkedList.add(1);
		
		vector.add("1");
		vector.add("1");
		vector.add("2");
		vector.add(1);
		
		for(Object obj:arrayList){ //foreach循環
			System.out.println(obj);
		}
		
		for(int i=0;i<linkedList.size();i++){ //普通for循環
			System.out.println(arrayList.get(i));
		}
		
		Iterator it = vector.iterator(); //迭代器
		while(it.hasNext()){
			Object j=it.next();
			System.out.println(j);
		}
	}
}

HashSet和TreeSet的區別

HashSet:HashSet 是哈希表實現的,HashSet中的數據是無序的,可以放入null,但只能放入一個null

TreeSet:TreeSet是二差樹實現的,Treeset中的數據是自動排好序的,不允許放入null值

代碼:

public class SetTest {
	public static void main(String[] args){
		Set hashSet=new HashSet();
		Set treeSet=new TreeSet();
		
		hashSet.add("1"); //字符類型
		hashSet.add("1"); //重復元素
		hashSet.add("2");
		hashSet.add(1); //數字類型
		
		treeSet.add("1");
		treeSet.add("1");
		treeSet.add("2");
//		treeSet.add(1); //報錯,treeSet不能添加不同的數據類型
		
		for(Object i:hashSet){ //foreach循環
			System.out.println(i);
		}
		
		Iterator it = treeSet.iterator(); //迭代器
		while(it.hasNext()){
			Object j=it.next();
			System.out.println(j);
		}
	}
}

注意:Set接口沒有get方法,所以不能使用普通for循環來遍歷

HashMap、Hashtable和TreeMap的區別

HashMap:HashMap允許存在一個為null的key,多個為null的value

Hashtable:hashtable的key和value都不允許為null

TreeMap:能夠把它保存的記錄根據鍵排序,默認是按鍵值的升序排序,也可以指定排序的比較器,當用Iterator 遍歷TreeMap時,得到的記錄是排過序的

代碼:

import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class MapTest {
	public static void main(String[] args){
		Map hashMap=new HashMap();
		Map hashtable=new Hashtable();
		Map treeMap=new TreeMap();
		
		hashMap.put(1, "1"); //字符類型值
		hashMap.put(2, "1"); //同值不同鍵
		hashMap.put(3, "2");
		hashMap.put(4, 1); //數字類型值
		hashMap.put("5", 1); //字符類型鍵
		
		hashtable.put(1, "1");
		hashtable.put(2, "1");
		hashtable.put(3, "2");
		hashtable.put(4, 1);
		hashtable.put("5", 1);
		
		treeMap.put(1, "1");
		treeMap.put(2, "1");
		treeMap.put(5, "2");
		treeMap.put(4, 1);
//		treeMap.put("5", 1); //報錯,TreeMap不能添加不同類型的鍵
		
		//遍歷hashMap鍵
		for(Object key:hashMap.keySet()){
			System.out.println(key);
		}
		//遍歷hashtable值
		for(Object value:hashtable.values()){
			System.out.println(value);
		}

		//遍歷hashMap鍵值對
		Set set = hashMap.keySet();
		for(Iterator iter = set.iterator(); iter.hasNext();){
			Object key = iter.next();
			Object value = hashMap.get(key);
			System.out.println(key+"\t"+value);
		}
		
		//迭代遍歷hashtable鍵值對,倒序!
		Iterator table = hashtable.entrySet().iterator();
		while(table.hasNext()){
			Map.Entry entry = (Map.Entry) table.next(); 
			Object key = entry.getKey(); //取鍵
			Object value = entry.getValue(); //取值
			System.out.println(key+"\t"+value); 
		}
		
		//迭代遍歷treeMap鍵值對
		Iterator tmp = treeMap.entrySet().iterator();
		while(tmp.hasNext()){
			Map.Entry entry = (Map.Entry) tmp.next(); 
			Object key = entry.getKey(); //取鍵
			Object value = entry.getValue(); //取值
			System.out.println(key+"\t"+value); 
			
		}
	}
}

關于線程安全的類有:Vecto、HashTabl、StringBuffe

非線程安全:ArrayList 、LinkedList、HashMap、HashSet、TreeMap、TreeSet、StringBulider

注意:ConcurrentHashMap可代替HashMap用于線程安全,且效率比Hashtable高

java自身的機制并不能完全保證線程安全。需要自己手動編碼控制。

以上是“Java集合類知識點有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广宗县| 黔西县| 临朐县| 阳原县| 绥芬河市| 玉屏| 江津市| 碌曲县| 贵溪市| 新安县| 宣化县| 新泰市| 富民县| 筠连县| 濮阳市| 长沙市| 凤山县| 海淀区| 马鞍山市| 昌黎县| 繁峙县| 乐安县| 石首市| 都昌县| 湘阴县| 兴国县| 吉木萨尔县| 广水市| 唐山市| 丁青县| 峨眉山市| 晋宁县| 寻乌县| 西乌| 鲁山县| 汝州市| 印江| 滁州市| 宽甸| 磴口县| 滨州市|