1. 程式人生 > >Set介面_HashSet常用方法_JDK原始碼解讀

Set介面_HashSet常用方法_JDK原始碼解讀

Set 介面繼承自 Collection ,Set 沒有新增方法,方法和 Collection 保持一致,

Set 容器的特點:無序,不可重複,無序指Set 中的元素沒有索引,我們只能遍歷查詢,不重複指不允許加入重複的元素,更確切的說,新元素如果和Set 中某個元素通過 equals() 方法對比為 true,則不能加入,甚至,Set 中只能放一個 null 元素,不能多個。

Set 常用的實現類:HashSet, TreeSet 等,一般常用 HashSet

HashSet 的原始碼:底層是一個 HashMap, Set 裡面新增的所有元素都作為 HashMap 中的 key, value 統一都為Object, 這就是為什麼Set 中元素不能重複的原因(HashMap 中 key 不能重複)

package com.jianshun;

import java.util.HashSet;
import java.util.Set;

/**
 *測試HashSet的基本方法
 *Set:沒有順序,不可重複
 *List: 有順序,可以重複
 * @author Administrator
 *
 */
public class TestHashSet {

	public static void main(String[] args) {
		Set<String> set1 = new HashSet<String>();
		set1.add("aa");
		set1.add("bb");
		set1.add("aa");
		System.out.println(set1);
		set1.remove("bb");
		System.out.println(set1);
		
		Set<String> set2 = new HashSet<String>();
		set2.add("高琪");
		set2.addAll(set1);
		System.out.println(set2);
		
	}

}

// [aa, bb]
// [aa]
// [aa, 高琪]