Einzelnen Beitrag anzeigen

Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#1

[JAVA] List contains

  Alt 30. Jan 2011, 13:39
Wie euch wohl auffällt, beschäftige ich mich zur Zeit mit Java. Deshalb gleich nochmal eine Frage:

Hier findet man, zu der Methode contains folgendes:

Zitat:
contains

public boolean contains(Object o)

Returns true if this list contains the specified element. More formally, returns true if and only if this list contains at least one element e such that (o==null ? e==null : o.equals(e)).
Dazu habe ich eine Klasse definiert, die das Interface Comparable und auch die Methode equals definiert.

Code:
public class Persons extends BeingsObject implements Comparable<Persons>{
    private String personNumber;

    public Persons(String personNumber){
        this.personNumber = personNumber;
    }

    public String getpersonNumber() {
        return this.personNumber;
    }

    @Override
    public int compareTo(Persons otherperson) {
        return personNumber.compareTo(otherperson.getpersonNumber());
    };

    public boolean equals(Persons r){
        return this.personNumber.equals(r.personNumber);
    }

}
Im Hauptprogramm habe ich ein Methode addPerson, die eine Peron erzeugt und einer ArrayList hinzufügt:

Code:
myBS.addPerson("Albert");
  myBS.addPerson("James");
  myBS.addPerson("MrSpock");
  myBS.addPerson("Hetfield");
Interessant ist jetzt die Ausgabe:

Code:
 Persons searchFor = new Persons("Albert");
  System.out.println("persList contains Albert " +myBS.PersonsList.contains(searchFor)); // gibt false zurück
  System.out.println("equal? "+myBS.PersonsList.get(0).equals(searchFor)); // gibt true zurück
Es gibt also ein Element, das die equlas Bedingung erfüllt, trotzdem gibt contains false zurück. Warum?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat