HashSet and its features
A HashSet in Java is an implementation of the Set interface that uses a hash table for storing elements. It does not allow duplicate elements and offers constant-time performance for the basic operations like add, remove, and contains (assuming a good hash function). HashSet does not guarantee the order of elements.
Table of Contents
Features of HashSet:
- 1. Uniqueness: HashSet does not allow duplicate elements. Adding a duplicate element to a HashSet has no effect, as the element is not added again.
- 2. Fast Lookup: HashSet provides fast lookup operations. The contains() method allows you to quickly check whether a specific element is present in the set.
- 3. Constant-Time Performance: HashSet offers constant-time performance for basic operations like add, remove, and contains, assuming a good hash function. This makes it efficient for large sets.
- 4. No Specific Order: HashSet does not guarantee the order of elements. The order in which elements are stored may vary based on the hash codes of the elements and the internal implementation of the hash table.
- 5. Backed by Hash Table: Internally, HashSet is implemented using a hash table data structure, where elements are stored based on their hash codes. This allows for efficient storage and retrieval of elements.
- 6. Null Elements: HashSet allows null elements. You can add a null element to a HashSet, and it will be treated as a single null value.
Example Usage of HashSet
```java
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
// Create a HashSet
Set<String> hashSet = new HashSet<>();
// Add elements to the HashSet
hashSet.add("Apple");
hashSet.add("Banana");
hashSet.add("Cherry");
// Adding a duplicate element (ignored)
hashSet.add("Banana");
// Print the HashSet
System.out.println("HashSet: " + hashSet);
// Check if an element is present
System.out.println("Contains 'Banana'? " + hashSet.contains("Banana"));
// Remove an element
hashSet.remove("Cherry");
System.out.println("HashSet after removing 'Cherry': " + hashSet);
}
}
```
In this example:
- We create a HashSet of strings and add some elements to it.
- The duplicate element “Banana” is not added to the set because HashSet does not allow duplicates.
- We print the contents of the HashSet and demonstrate the contains and remove operations.
HashSet is commonly used in scenarios where uniqueness of elements and fast lookup operations are required, such as removing duplicates from a collection or checking for membership in a group of elements.