1. 程式人生 > 其它 >集合(3)Set介面的使用

集合(3)Set介面的使用

Set介面的使用其實與前面所講到的ArrayList一樣。

//建立集合
        Set<String> set = new HashSet<>();

然後新增、刪除、遍歷、判斷元素都一樣。

但是Set的特點是無序、無下標、元素不重複。

HashSet的儲存結構是雜湊表(陣列+連結串列+紅黑樹)

其儲存過程

(1)根據hashcode計算儲存的位置,如果此位置為空,則直接儲存,否則執行第二部
(2)再執行equals方法,如果equals為true,則認為是重複,不會存入,如果為false,則形成連結串列

所以這裡有一點要注意

package gather.Set.HashSet;

import java.util.HashSet; /** * HashSet的使用 * 儲存結構:雜湊表(陣列+連結串列+紅黑樹) * 儲存過程: * (1)根據hashcode計算儲存的位置,如果此位置為空,則直接儲存,否則執行第二部 * (2)再執行equals方法,如果equals為true,則認為是重複,不會存入,如果為false,則形成連結串列 * @author 長空扯淡 */ public class DemoPerson { public static void main(String[] args) { //建立集合 HashSet<Person> hashSet = new
HashSet<>(); //建立物件 Person p1 = new Person("周慧敏",20); Person p2 = new Person("朱茵",20); Person p3 = new Person("張敏",20); //新增 hashSet.add(p1); hashSet.add(p2); hashSet.add(p3); //hashSet.add(p3);//重複 不會新增 hashSet.add(new Person("周慧敏",20));//
可以新增,為什麼可以新增,如下圖 //當重寫equals之後,元素進行比較是重複的,就新增不進去了 System.out.println("元素個數:"+hashSet.size()); System.out.println(hashSet.toString()); //刪除 //遍歷 //判斷 } }