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); } }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?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() { } }
due oggetti uguali non li dovrebbe inserire nella lista. cosa sbaglio?
Grazie

Rispondi quotando