什麼是哈希集?
HashSet 是 Java 中的內置數據類型,通俗地說,您可以說“HashSet 是唯一元素的無序集合”。 看一個基本的例子:
- 它創建一個使用哈希表存儲的集合(集合表示單個對象單元,例如:ArrayList、LinkedList、Vector 等)。
- HashSet 中不允許有重複值。
- 您可以在 HashSet 中插入“空”值。
- 不維護廣告訂單。因此,如果您希望按順序插入項目,那麼 HashSet 將不是您的要求的最佳選擇。
- 如果您想在恆定時間(O(1))內獲取/檢索元素,那麼 HashSet 是您可以採用的最佳方法之一。
什麼是 HashSet.contains() 方法?
HashSet.contains()是一種布爾方法,用於檢查某個項目是否存在於 HashSet 的實例中。簡單的說,集合中是否包含想要的元素。Java.util.HashSet為其提供了高效的實現。讓我們向您展示如何有效地使用它來解決您的疑問。contains() 與整數
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Declare your hash set
HashSet digits = new HashSet();
digits.add(0);
digits.add(1);
digits.add(2);
digits.add(3);
digits.add(4);
digits.add(5);
digits.add(null);
System.out.println("All elements in hashset:\t" + digits);
// Try adding duplicates
digits.add(5);
digits.add(2);
System.out.println("After adding duplicates: \t" + digits);
System.out.println("\n-------Using Contains Method-------");
// Check out if the following digits exist in the hashset
System.out.println("digits.contains(0) : " + digits.contains(0));
System.out.println("digits.contains(2) : " + digits.contains(2));
System.out.println("digits.contains(3) : " + digits.contains(7));
System.out.println("digits.contains(null) : " + digits.contains(null));
}
}
輸出
hashset中的所有元素:[0, null, 1, 2, 3, 4, 5] 添加重複後:[0, null, 1, 2, 3, 4, 5] ------使用包含方法- ------ digits.contains(0):true digits.contains(2):true digits.contains(3):false digits.contains(null):true
contains() 與字符串
看一下contains()方法和Strings的另一個例子。
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Try working with another hash set of String type
HashSet rainbow = new HashSet();
// Adding elements into HashSet using add()
rainbow.add("Red");
rainbow.add("Orange");
rainbow.add("Yellow");
rainbow.add("Green");
rainbow.add("Blue");
rainbow.add("Indigo");
rainbow.add("Violet");
// Let's traverse the hashset
System.out.println("Traversing the rainbow:");
for (String i : rainbow){
System.out.println(i);
}
// Check out if rainbow contains this color or not
System.out.println("\n-------Using Contains Method-------");
System.out.println("rainbow.contains(\"Yellow\"): \t" + rainbow.contains("Yellow"));
System.out.println("rainbow.contains(\"White\"): \t" + rainbow.contains("White"));
System.out.println("rainbow.contains(\"Lavender\"): \t" + rainbow.contains("Lavender"));
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
// Remove a color from rainbow using remove()
rainbow.remove("Red");
// Now consume set contains() method again to check if it's still present
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
System.out.println("\nAfter removing Red: " + rainbow);
}
}
輸出
穿越彩虹:紅紫黃藍靛藍橙綠------使用Contains方法-------- rainbow.contains("Yellow"): true rainbow.contains("White"): false rainbow. contains("Lavender"): false rainbow.contains("Red"): true rainbow.contains("Red"): false 去除紅色後:[Violet, Yellow, Blue, Indigo, Orange, Green]
如您所見,輸出順序與將元素放入哈希集中的順序不同。
GO TO FULL VERSION