Pourquoi n'avons-nous pas obtenir la séquence ordonnée dans HashSet

Je suis en utilisant le HashSet pour l'ajout d'éléments et de les récupérer, je sais que je ne vais pas récupérer les données dans l'ordre dans lequel j'ai ajouté, mais je veux savoir la raison exacte pourquoi Est-il happeing?

import java.util.HashSet;
import java.util.Iterator;

 public class HS {
     public static void main(String args[]) {
         HashSet h=new HashSet();
         h.add("Mayank");
         h.add("Mayank");

         h.add("Vashist");
         h.add("Dinesh");

         h.add("Vashist");

         Iterator itr=h.iterator();
         while(itr.hasNext()) {
             System.out.println(itr.next());
         }
     }
 }

OriginalL'auteur Make | 2013-06-01