集合(3)Set介面的使用
阿新 • • 發佈:2022-03-27
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 = newHashSet<>(); //建立物件 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()); //刪除 //遍歷 //判斷 } }