Suchen in Arrayliste aus Objekten



  • Hallo,
    ich habe eine Frage zu Arraylisten. Ich habe eine Klasse Contact.

    public class Contact {
        private String name;
        private String phoneNumber;
    
        public Contact(String name, String phoneNumber) {
            this.name = name;
            this.phoneNumber = phoneNumber;
        }
    
    

    In der Main-Klasse erzeuge ich eeine Arrayliste und füg einen Kontakt hinzu. Dann erzege ich mir einen neuen Kontakt mit denselben Daten und suche ihn in der Arrayliste. Leider findet die Liste diesen Kontakt nicht,, da das Ergebnis von indexOf -1 ist. Funktioniert das nur mit primitiven Datentypen?

    ArrayList<Contact> c=new ArrayList<Contact>();
    c.add(new Contact("a","1"));
    Contact neu=new Contact("a","1")
    int index=c.indexOf(neu);
    System.out.println(index);
    //Output: -1
    


  • Ich bin in Java nicht wirklich fit, aber ich denke du müsstest equals implementieren.



  • @manni66 sagte in Suchen in Arrayliste aus Objekten:

    Ich bin in Java nicht wirklich fit, aber ich denke du müsstest equals implementieren.

    AFAIK ja, da in Java klassen referentypen sind. Und die default implementierung von equals vergleicht dann wohl nur ob es die selbe referenz ist und nicht ob die member der klasse identische werte haben.


Anmelden zum Antworten