java util HashSet Class - java.util.HashSet Class in Java
java.util.HashSet Class
HashSet Class in Java
The Java Collection Framework introduces the HashSet collection. This implementation is backed by a hash table (HashMap, actually) for storing unique elements. The backing hash table ensures that duplicate elements are avoided as each element is stored and retrieved through its hash code, providing constant retrieval time.
It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element. Most of the HashSet functionality is provided through the AbstractCollection and AbstractSet superclasses, which HashSet shares with TreeSet.
Is HashSet Thread Safe ?
The HashSet is not synchronized. If multiple threads access a hash set concurrently, and at least one of the threads modifies the set, it must be synchronized externally. This is typically accomplished by synchronizing on some object that naturally encapsulates the set.
Note : To prevent accidental unsynchronized access to the set, you should create set with Collections.synchronizedSet method.
What is the Performance a HashSet in Java ?
This class offers constant time performance for the basic operations (add, remove, contains and size), assuming the hash function disperses the elements properly among the buckets. Iterating over this set requires time proportional to the sum of the HashSet instance's size (the number of elements) plus the "capacity" of the backing HashMap instance (the number of buckets). Thus, it's very important not to set the initial capacity too high (or the load factor too low) if iteration performance is important.
In this tutorial you can learn about java.util.HashSet class and its examples. And also learn how to use java.util.HashSet class.
java.util.HashSet class Example
/* Java HashSet class Example Save with file name HashSetExample.java */ import java.util.HashSet; public class HashSetExample { public static void main(String args[]) { // java.util.HashSet DECLARATION HashSet hs; // java.util.HashSet OBJECT CREATION // USING DEFAULT CONSTRUCTOR hs = new HashSet(); // ADD AN ELEMENT hs.add("Huda Tutorials"); hs.add("Java Tutorials"); // DUPLICATES NOT ALLOWED hs.add("Huda Tutorials"); hs.add("C Tutorials"); hs.add("CPP Tutorials"); // RETURNS COUNT OF ELEMENTS HashSet CONTAINS System.out.println("Elements Count : " + hs.size()); // java.util.HashSet OUTPUT System.out.println(hs); } }
How to use HashSet with Iterator
The following example shows how to use HashSet with Iterator.
/* How to use HashSet with Iterator Example Save with file name HashSetExample2.java */ import java.util.HashSet; import java.util.Iterator; public class HashSetExample2 { public static void main(String args[]) { // java.util.HashSet DECLARATION HashSet hs; // java.util.HashSet OBJECT CREATION // USING DEFAULT CONSTRUCTOR hs = new HashSet(); // ADD AN ELEMENT hs.add("Huda Tutorials"); hs.add("Java Tutorials"); // DUPLICATES NOT ALLOWED hs.add("Huda Tutorials"); hs.add("C Tutorials"); hs.add("CPP Tutorials"); // RETURNS COUNT OF ELEMENTS HashSet CONTAINS System.out.println("Elements Count : " + hs.size()); // java.util.HashSet OUTPUT Iterator itr = hs.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
How to use HashSet with Arrays, Set and Iterator
The following example shows how to use HashSet with Arrays, Set and Iterator.
/* How to use HashSet with Arrays, Set and Iterator Example Save with file name HashSetExample3.java */ import java.util.HashSet; import java.util.Set; import java.util.Arrays; import java.util.Iterator; public class HashSetExample3 { public static void main(String args[]) { String elements[] = {"Huda Tutorials","Java Tutorials","C Tutorials"}; Set s; // java.util.Set DECLARATION // java.util.Set OBJECT CREATION USING ARRAY AS LIST s = new HashSet(Arrays.asList(elements)); // java.util.Set OUTPUT Iterator itr = s.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
java.util.HashSet class Example 4
/* Java HashSet class Example 4 Save with file name HashSetExample4.java */ import java.util.HashSet; import java.util.Set; import java.util.Arrays; import java.util.Iterator; public class HashSetExample4 { public static void main(String args[]) { String elements[] = {"Huda Tutorials","Java Tutorials","C Tutorials"}; Set s; // java.util.Set DECLARATION // java.util.Set OBJECT CREATION USING ARRAY AS LIST s = new HashSet(Arrays.asList(elements)); // ADD ELEMENT TO Set COLLECTION s.add("NetBeans Tutorials"); // DISPLAY SIZE OF THE Set COLLECTION System.out.println("Set Collection Size : "+s.size()); // CHECK THE Set COLLECTION IS EMPTY System.out.println("Set Collection is Empty : "+s.isEmpty()); // CHECK THE GIVEN ELEMENT IN Set COLLECTION System.out.println("\"Huda Tutorials\" Contains :"+s.contains("Huda Tutorials")); // java.util.Set OUTPUT System.out.println("Elements Before Element Remove"); Iterator itr = s.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } s.remove("C Tutorials"); System.out.println("Elements After Element Remove"); itr = s.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }
How to compare two Set Collections
The following example shows how to compare two Set Collections.
/* How to compare two Set Collections Example Save with file name HashSetExample5.java */ import java.util.HashSet; import java.util.Set; import java.util.Arrays; import java.util.Iterator; public class HashSetExample5 { public static void main(String args[]) { String elements[] = {"Huda Tutorials","Java Tutorials","C Tutorials"}; String elements2[] = {"Huda Tutorials","Java Tutorials","Android Tutorials"}; // java.util.Set DECLARATION Set s, s2; // java.util.Set OBJECT CREATION USING ARRAY AS LIST s = new HashSet(Arrays.asList(elements)); s2 = new HashSet(Arrays.asList(elements2)); // COMPARE TWO COLLECTIONS System.out.println("Equals : " + s2.equals(s)); // CONTAINS COLLECTION IN OTHER COLLECTION System.out.println("Contains : " + s2.containsAll(s)); } }
How to save Set Collection into file
The following example shows how to save Set Collection into file.
/* How to save Set Collection into file Example Save with file name HashSetExample6.java */ import java.util.HashSet; import java.util.Set; import java.util.Arrays; import java.io.FileOutputStream; import java.io.ObjectOutputStream; public class HashSetExample6 { public static void main(String args[]) { try { String elements[] = {"Huda Tutorials","Java Tutorials","Android Tutorials"}; // java.util.Set DECLARATION Set s; // java.util.Set OBJECT CREATION USING ARRAY AS LIST s = new HashSet(Arrays.asList(elements)); // FileOutputStream CREATION FileOutputStream fos = new FileOutputStream("set.set"); // ObjectOutputStream CREATION ObjectOutputStream oos = new ObjectOutputStream(fos); // WRITE Set OBJECT TO ObjectOutputStream oos.writeObject(s); // CLOSE THE ObjectOutputStream oos.close(); System.out.println("Set Collection Saved into File Sucessfully"); } catch(Exception e) { System.out.println("Error Occurred : " + e.getMessage()); } } }
The following example shows how to retrieve Set Collection from file.
How to retrieve Set Collection from file
/* How to retrieve Set Collection from file Example Save with file name HashSetExample7.java */ import java.util.HashSet; import java.util.Set; import java.util.Arrays; import java.io.FileInputStream; import java.io.ObjectInputStream; public class HashSetExample7 { public static void main(String args[]) { try { // java.util.Set DECLARATION Set s; // FileInputStream CREATION FileInputStream fis = new FileInputStream("set.set"); // ObjectInputStream CREATION ObjectInputStream ois = new ObjectInputStream(fis); // READ Set OBJECT FROM ObjectInputStream s = (Set) ois.readObject(); ois.close(); System.out.println(s); } catch(Exception e) { System.out.println("Error Occurred : " + e.getMessage()); } } }