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());
}
}
}