Hi,
ich habe eine Klasse Benutzer:
[src=java]import java.io.Serializable;
public class Benutzer implements Serializable {
public String userId;
private char[] passWort;
Benutzer(){};
Benutzer(String userId, char[] passWort){
this.userId = userId;
this.passWort = passWort;
};
public String toString(){
return "Benutzer{userId: " + this.userId + ", passWort: " + String.valueOf(this.passWort) + "}";
};
public boolean equals(Benutzer b){
return this.userId.equals(b.userId) && String.copyValueOf(this.passWort).equals(String.copyValueOf(b.passWort));
}
}
[/src]
Und folgenden Code zum Testen:
[src=java]class MeinTest {
public static void main(String[] args){
ArrayList<Benutzer> users = new ArrayList<Benutzer>();
Benutzer foo = new Benutzer("7", "passwort".toCharArray());
Benutzer bar = new Benutzer("7", "passwort".toCharArray());
users.add(foo);
System.out.println("foo equals bar: " + foo.equals(bar));
System.out.println("Alle: " + users);
users.remove(bar);
System.out.println("bar löschen funktioniert nicht: " + users);
users.remove(foo);
System.out.println("foo löschen funktioniert: " + users);
}
}[/src]
Ausgabe:
Warum kann ich mit [kw]users.remove(bar)[/kw] keinen Benutzer aus der Liste löschen?
ich habe eine Klasse Benutzer:
[src=java]import java.io.Serializable;
public class Benutzer implements Serializable {
public String userId;
private char[] passWort;
Benutzer(){};
Benutzer(String userId, char[] passWort){
this.userId = userId;
this.passWort = passWort;
};
public String toString(){
return "Benutzer{userId: " + this.userId + ", passWort: " + String.valueOf(this.passWort) + "}";
};
public boolean equals(Benutzer b){
return this.userId.equals(b.userId) && String.copyValueOf(this.passWort).equals(String.copyValueOf(b.passWort));
}
}
[/src]
Und folgenden Code zum Testen:
[src=java]class MeinTest {
public static void main(String[] args){
ArrayList<Benutzer> users = new ArrayList<Benutzer>();
Benutzer foo = new Benutzer("7", "passwort".toCharArray());
Benutzer bar = new Benutzer("7", "passwort".toCharArray());
users.add(foo);
System.out.println("foo equals bar: " + foo.equals(bar));
System.out.println("Alle: " + users);
users.remove(bar);
System.out.println("bar löschen funktioniert nicht: " + users);
users.remove(foo);
System.out.println("foo löschen funktioniert: " + users);
}
}[/src]
Ausgabe:
Code:
foo equals bar: true
Alle: [Benutzer{userId: 7, passWort: passwort}]
bar löschen funktioniert nicht: [Benutzer{userId: 7, passWort: passwort}]
foo löschen funktioniert: []
Warum kann ich mit [kw]users.remove(bar)[/kw] keinen Benutzer aus der Liste löschen?