oi
fazendo um teste aqui me deparei com a seguinte situação
Set<String> strs = new HashSet<String>();
strs.add("C");
strs.add("A");
strs.add("B");
strs.add("C");
strs.add("C");
for (Iterator iterator = strs.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.print(string+" ");
}
utilizando java5 o resultado é A C B
utilizando java6 o resultado é A B C
segundo o tutorial HashSet garante apenas que não existe duplicidade - característica básica de Set - mas não ordenação, nesse caso eu poderia usar TreeSet - estrutura em árvore - ou LinkedHashSet
na verdade o add do HashSet internamente faz isso, onde map é um HashMap
public boolean add(E o) {
return map.put(o, PRESENT)==null;
}
olhei o source das duas versões, java5 e java6 e não vi diferenças de implementação, também busquei diferenças na implementação do interator e não vi nada de diferente
alguém poderia dizer porque da diferença??
abs