Java HashSet 集合
HashSet 集合
繼承自 AbstractCollection
實現了 Collection 介面
底層使用 HashMap 集合,將元素作為 HashMap 集合的鍵進行儲存
迭代器調用的是底層Map的 map.keySet().iterator
儲存無序,不能使用索引擷取元素
元素不可重複,hash演算法和equals方法進行判斷元素是否重複,重複則不添加 使用方法
添加元素
樣本
HashSet<Integer> hs = new HashSet<>();// 添加元素hs.add(10);hs.add(20);System.out.println("add(E e) :" + hs);// 添加一個集合// 由於添加的是集合本身,所有元素重複,添加不進去hs.addAll(hs);System.out.println("addAll(Collection<? extends E> c) :" + hs);
運行結果
移除元素
樣本
HashSet<Integer> hs = new HashSet<>();for (int i = 1; i <= 5; i++) { hs.add(i);}hs.remove(Integer.valueOf(3));System.out.println("remove(Object o) :" + hs);// 移除交集元素// removeAll(Collection<?> c)
運行結果
判斷相關
樣本
HashSet<Integer> hs = new HashSet<>();for (int i = 1; i <= 5; i++) { hs.add(i);}// 判斷集合中是否包含指定元素boolean result = hs.contains(Integer.valueOf(3));System.out.println("contains(Object o)" + result);// 判斷集合是否為空白result = hs.isEmpty();System.out.println("isEmpty()" + result);
運算結果
遍曆集合
將集合轉換成數組,然後遍曆數組
樣本
HashSet<Integer> hs = new HashSet<>();for (int i = 1; i <= 5; i++) { hs.add(i);}Integer[] array = hs.toArray(new Integer[hs.size()]);for (int i = 0; i < array.length; i++) { System.out.println(array[i]);}
運行結果
foreach (增強for) 樣本
HashSet<Integer> hs = new HashSet<>();for (int i = 1; i <= 5; i++) { hs.add(i);}Integer[] array = hs.toArray(new Integer[hs.size()]);for (int i = 0; i < array.length; i++) { System.out.println(array[i]);}
foreach (增強for)
樣本
HashSet<Integer> hs = new HashSet<>();for (int i = 1; i <= 5; i++) { hs.add(i);}for(Integer i : hs) { System.out.println(i);}
運行結果
iterator 迭代器
樣本
HashSet<Integer> hs = new HashSet<>();for (int i = 1; i <= 5; i++) { hs.add(i);}Iterator<Integer> iterator = hs.iterator();while(iterator.hasNext()) { System.out.println(iterator.next());}
運行結果