ae pessoal qual eh a diferença exata de usar u m hashSet e o hashMap ja que os dois nao sao ordenados e tb nao sao classificados… quando saber usar um ou outro?
hashSet e hashMap !=
5 Respostas
É só você ver a diferença entre as interfaces Set (que o HashSet implementa) e Map (que o HashMap implementa).
[]'s
Rodrigo Auler
Set = Conjunto (ou seja, você só tem valores.)
Exemplo: você pode fazer um Set dos Estados do Brasil.
Map = Mapa (ou seja, você tem pares "valor -> chave")
Exemplo: você pode associar a cada nome um Estado.
Esse aqui do JF também ajuda:
http://www.javafree.org/content/view.jf?idContent=11
po valeu! deu para dar uma clareada!!
Set tb procura manter uma coleção de objetos sem repetição baseado nos métodos hashcode e equals do seu objeto. Hibernate, por exemplo, usa muito essa característica dessa coleção.
Imagine a classe Pessoa abaixo com os métodos hashcode e equals implementados de tal forma q se dois objetos Pessoa tiverem o mesmo nome, eles são dados como iguais.
public class Pessoa {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public boolean equals(Object object) {
if (object == null) return false;
if (this == object) return true;
boolean result = false;
if (object instanceof Pessoa) {
Pessoa teste= (Pessoa) object;
result = this.getNome() != null &&
this.getNome().equals(teste.getNome());
}
return result;
}
public int hashCode() {
return this.getNome() != null ? this.getNome().hashCode() : 67;
}
public String toString() {
return this.getNome();
}
}
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Pessoa a = new Pessoa();
a.setNome( "Pedro" );
Pessoa b = new Pessoa();
b.setNome( "Pedro" );
Set set = new HashSet();
set.add( a );
set.add( b );
for( Iterator iterator = set.iterator() ; iterator.hasNext() ; ) {
System.out.println( iterator.next() );
}
}
}
No Set será armazenado somente um objeto, pois eles são dados como iguais, tem o mesmo valor em seus atributos, ou seja, tem o mesmo nome.
Advinha qual o resultado do código!!?