codice:
public static void main(String[] args) { Set<Cliente> lista=new HashSet<Cliente>();
Cliente c = new Cliente();
c.setNome("andrea");
c.setEta(2);
Cliente f=new Cliente();
f.setEta(2);
f.setNome("andrea");
lista.add(f);
lista.add(c);
System.out.println("------Visualizza-----------");
Iterator<Cliente> it = lista.iterator();
while (it.hasNext()){
Cliente p = it.next();
System.out.println(p);
}
}
codice:
public class Cliente implements Comparable<Cliente>, Comparator<Cliente>{
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return nome;
}
@Override
public int compareTo(Cliente o) {
int i=0;
if (o.getNome().equalsIgnoreCase(this.nome)){
i=0;
}else{
i=-1;
}
return i;
}
public int compare(Cliente p1, Cliente p2){
return p1.getNome().compareTo(p2.getNome());
}
public boolean equals(Cliente c) {
// TODO Auto-generated method stub
boolean chiave = false;
if (this.nome.equalsIgnoreCase(c.getNome())) {
chiave = true;
} else {
chiave = false;
}
return chiave;
}
public Cliente() {
}
}
mi trovo alle prime armi. Sto provando ad inserire in una lista HashSet dei clienti, ma quando inserisco due clienti con lo stesso nome vengono inseriti nella lista, come mai?
due oggetti uguali non li dovrebbe inserire nella lista. cosa sbaglio?
Grazie