Internal Working of Hashset
Hashset internally use HashMap.
Key -> Input Value
Value -> Default PRESENT object
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
private transient HashMap<E,Object> map;
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
/**
* Constructs a new, empty set; the backing {@code HashMap} instance has
* default initial capacity (16) and load factor (0.75).
*/
public HashSet() {
map = new HashMap<>();
}
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}public boolean remove(Object o) {
return map.remove(o)==PRESENT;
}
import java.util.HashSet;
class Test
{
public static void main(String args[])
{
// creating a HashSet
HashSet hs = new HashSet();
// adding elements to hashset
// using add() method
boolean b1 = hs.add("Test");
boolean b2 = hs.add("Test1");
// adding duplicate element
boolean b3 = hs.add("Test");
// printing b1, b2, b3
System.out.println("b1 = "+b1);
System.out.println("b2 = "+b2);
System.out.println("b3 = "+b3);
// printing all elements of hashset
System.out.println(hs);
}
}
Output:
b1 = true
b2 = true
b3 = false
[Test, Test1]
Comments
Post a Comment