Introduction
In this article, we discuss how various Java Collection classes work.
HashSet class
HashSet extends AbstractSet and implements the Set interface. It creates a collection that uses a hash table (a hash table stores information by using a mechanism called hashing) for storage. 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.
This class supports four constructors that are the following:
- HashSet( )
- HashSet(Collection cln)
- HashSet(int capacity, float fillRatio)
- HashSet(int capacity)
Example
- import java.util.*;
- class HashSetEx {
- public static void main(String args[]) {
- HashSet arylst = new HashSet();
- arylst.add("Paul");
- arylst.add("John");
- arylst.add("Paul");
- arylst.add("San");
- Iterator itrtr = arylst.iterator();
- while (itrtr.hasNext()) {
- System.out.println(itrtr.next());
- }
- }
- }
Output
LinkedHashSet class
- It contains only unique elements like HashSet.
- It extends HashSet class and implements Set interface.
- Maintains insertion order.
Example
- import java.util.*;
- class HashSetEx {
- public static void main(String args[]) {
- HashSet arylst = new HashSet();
- arylst.add("Paul");
- arylst.add("John");
- arylst.add("Paul");
- arylst.add("San");
- Iterator itrtr = arylst.iterator();
- while (itrtr.hasNext()) {
- System.out.println(itrtr.next());
- }
- }
- }
Output
TreeSet class
- This class implements a NavigableSet interface that extends the SortedSet interface.
- It contains only unique elements like HashSet.
- Maintains ascending order.
Example
- import java.util.*;
- class TreeSetEx {
- public static void main(String args[]) {
- TreeSet arylst = new TreeSet();
- arylst.add("Paul");
- arylst.add("John");
- arylst.add("Paul");
- arylst.add("San");
- Iterator itrtr = arylst.iterator();
- while (itrtr.hasNext()) {
- System.out.println(itrtr.next());
- }
- }
- }
Output
Queue Interface
It is basically used to order the elements in the FIFO (first in first out) manner.
Public Methods
Some public methods used in Queue Interface are:
- remove()
- poll()
- elements()
- peek()
- boolean add (object)
- boolean offer (object)
Priority Queue classes
The class provides the ability to use a queue, but it does not order the elements in a FIFO manner.
Example
- import java.util.*;
- class PriorityQueueEx {
- public static void main(String args[]) {
- PriorityQueue que = new PriorityQueue();
- que.add("Paul");
- que.add("John");
- que.add("Dinesh");
- que.add("San");
- que.add("Rahul");
- System.out.println("head:" + que.element());
- System.out.println("head:" + que.peek());
- System.out.println("iterating the que elements:");
- Iterator itrtr = que.iterator();
- while (itrtr.hasNext()) {
- System.out.println(itrtr.next());
- }
- que.remove();
- que.poll();
- System.out.println("after removing two elements of queue:");
- Iterator itrtr2 = que.iterator();
- while (itrtr2.hasNext()) {
- System.out.println(itrtr2.next());
- }
- }
- }
Output
HashMap class
- may have one null key and multiple null values.
- contains values based on the key.
- implements the Map interface and extends the AbstractMap class.
- contains only unique elements.
- maintains no order.
Example
- import java.util.*;
- class HashMapEx {
- public static void main(String args[]) {
- HashMap hsmp = new HashMap();
- hsmp.put(10, "Paul");
- hsmp.put(11, "John");
- hsmp.put(12, "San");
- Set s = hsmp.entrySet();
- Iterator itrtr = s.iterator();
- while (itrtr.hasNext()) {
- Map.Entry me = (Map.Entry) itrtr.next();
- System.out.println(me.getKey() + " " + me.getValue());
- }
- }
- }
Output