Java HashSet

Java HashSet


HashSet Class In Java -
  • HashSet extends AbstractSet and implements the Set interface.
  • It creates a collection that uses a hash table for storage.
  • HashSet is a generic class that has this declaration - 
class HashSet<M>
  • Here, E specifies the type of objects that the set will hold.
  • As most people likely know, a hash table stores information by using a mechanism called hashing.
  • In hashing, the informational content of a key is used to determine a unique value, called its hash code.
  • The hash code is then used as the index at which the data associated with the key is stored. The transformation of the key into its hash code is performed automatically— you never see the hash code itself.
  • Also, your code can’t directly index the hash table.
  • The advantage of hashing is that it allows the execution time of add( ), contains( ), remove( ), and size( ) to remain constant even for large sets.
The following constructors are defined - 
  1. HashSet( ) 
  2. HashSet(Collection<? Extends M> c) 
  3. HashSet(int capacity) 
  4. HashSet(int capacity, float fillRatio)
The first form constructs a default hash set. 
  •  The second form initializes the hash set by using the elements of c.
  • The third form initializes the capacity of the hash set to capacity. (The default capacity is 16.)
  • The fourth form initializes both the capacity and the fill ratio (also called load capacity) of the hash set from its arguments. The fill ratio must be between 0.0 and 1.0, and it determines how full the hash set can be before it is resized upward. Specifically, when the number of elements is greater than the capacity of the hash set multiplied by its fill ratio, the hash set is expanded. For constructors that do not take a fill ratio, 0.75 is used.
Example-
Output -