In Java, the Set interface is a part of the Java Collection Framework, located in the java.util package. It represents a collection of unique elements, meaning it does not allow duplicate values.
- The set interface does not allow duplicate elements.
- It can contain at most one null value except TreeSet implementation which does not allow null.
- The set interface provides efficient search, insertion, and deletion operations.
Javaimportjava.util.HashSet;importjava.util.Set;publicclassGeeks{publicstaticvoidmain(Stringargs[]){// Create a Set using HashSetSet<String>s=newHashSet<>();// Displaying the SetSystem.out.println("Set Elements: "+s);}}Explanation: In the above example, HashSet will appear as an empty set, as no elements were added. The order of elements in HashSet is not guaranteed, so the elements will be displayed in a random order if any are added.
Hierarchy of Java Set interface
The image below demonstrates the hierarchy of Java Set interface.
Set-HierarchyClasses that implement the Set interface
- HashSet: A set that stores unique elements without any specific order, using a hash table and allows one null element.
- EnumSet : A high-performance set designed specifically for enum types, where all elements must belong to the same enum.
- LinkedHashSet: A set that maintains the order of insertion while storing unique elements.
- TreeSet: A set that stores unique elements in sorted order, either by natural ordering or a specified comparator.
Declaration of Set Interface
The declaration of Set interface is listed below:
public interface Set extends Collection
Creating Set Objects
Since Set is aninterface, objects cannot be created of the typeset. We always need a class that implements this interface in order to create an object. And also, after the introduction ofGenerics in Java 1.5, it is possible to restrict the type of object that can be stored in the Set. This type-safe set can be defined as:
// Obj is the type of the object to be stored in Set
Set<Obj> set = new HashSet<Obj> ();
Performing Various Operations on Set
Set interface provides commonly used operations to manage unique elements in a collection. Now let us discuss these operations individually as follows:
1.Adding Elements
To add elements to a Set in Java, use the add() method.
Javaimportjava.util.*;// Main classclassGeeks{publicstaticvoidmain(String[]args){Set<String>s=newHashSet<String>();s.add("B");s.add("B");s.add("C");s.add("A");System.out.println(s);}}2.Accessing the Elements
After adding the elements, if we wish to access the elements, we can use inbuilt methods likecontains().
Javaimportjava.util.*;classGeeks{publicstaticvoidmain(String[]args){Set<String>h=newHashSet<String>();h.add("A");h.add("B");h.add("C");h.add("A");System.out.println("Set is "+h);Strings="D";System.out.println("Contains "+s+" "+h.contains(s));}}OutputSet is [A, B, C]Contains D false
3.Removing Elements
The values can be removed from the Set using theremove() method.
Javaimportjava.util.*;classGeeks{publicstaticvoidmain(String[]args){// Declaring object of Set of type StringSet<String>h=newHashSet<String>();// Elements are added using add() method, Custom input elementsh.add("A");h.add("B");h.add("C");h.add("B");h.add("D");h.add("E");System.out.println("Initial HashSet "+h);// Removing custom element using remove() methodh.remove("B");System.out.println("After removing element "+h);}}OutputInitial HashSet [A, B, C, D, E]After removing element [A, C, D, E]
4. Iterating elements
There are various ways to iterate through the Set. The most famous one is to use the enhanced for loop.
Javaimportjava.util.*;classGeeks{publicstaticvoidmain(String[]args){// Creating object of Set and declaring String typeSet<String>h=newHashSet<String>();// Adding elements to Set using add() method, Custom input elementsh.add("A");h.add("B");h.add("C");h.add("B");h.add("D");h.add("E");// Iterating through the Set via for-each loopfor(Stringvalue:h)// Printing all the values inside the objectSystem.out.print(value+", ");System.out.println();}}Methods of Set Interface
Let us discuss methods present in the Set interface provided below in a tabular format below as follows:
Explore
Java Basics
OOP & Interfaces
Collections
Exception Handling
Java Advanced
Practice Java