Array List bearbeiten?
Benötige eure Unterstützung bei zwei Aufgaben die ich versucht habe zu lösen.
Leider bisher ohne Erfolg.
Aufgabe 1Die Klasse Person sieht wie folgt aus:
public class Person {
public String name;
public int jahrgang;
public Person(String n, int j) {
this.name = n;
this.jahrgang = j;
}
}
Ersetze den Namen der zweiten Person mit "Peter" in dem du den Namen im bestehenden Objekt anpasst. Das bestehende Objekt soll also nicht überschrieben, sondern nur geändert werden.
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Person> personen = new ArrayList<Person>();
Person p1 = new Person("Hans",1997);
Person p2 = new Person("Petra",1998);
personen.add(p1);
personen.add(p2);
Meine falsche Antwort:
Person p2 = Person("Peter", 1998);
Weitere Aufgabe:
Die Klasse Person2 sieht wie folgt aus:
public class Person2 {
private String name;
public Person2(String n) {
this.name = n;
}
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
}
Ersetze den Namen der zweiten Person mit "Fred" in dem du den Namen im bestehenden Objekt anpasst. Das bestehende Objekt soll also nicht überschrieben, sondern nur geändert werden.
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Person2> personen2 = new ArrayList<Person2>();
personen2.add(new Person2("Franz"));
personen2.add(new Person2("Franziska"));
Meine falsche Antwort:
personen2.set(1, new Person("Fred"));
Vielen Dank euch für die Hilfe und Erklärungen.
1 Antwort
In beiden Fällen versuchst du mit einem neuen Objekt zu arbeiten, was du aber, so wie es die Aufgabe ausdrücklich schreibt, nicht tun sollst.
Den Objektzustand kann man ändern, indem man das betreffende Feld über den Punktoperator aufruft.
Beispiel:
class Car {
public int numberOfWheels;
}
// main:
Car car = new Car();
car.numberOfWheels = 4;
Ebenso kann man auf diese Weise den Wert des Feldes einholen.
int numberOfWheels = car.numberOfWheels; // 4
if (numberOfWheels < 3) {
System.out.println("Not a car");
}
Die zusätzliche Variable ist hierbei nur zusätzliche Demonstration, um es verständlicher aufzuzeigen. Im if-Kopf könnte man genauso gut direkt car.numberOfWheels einsetzen.
In der zweiten Aufgabe musst du das Objekt, welches du ändern sollst, erst in der Liste suchen. Kontrollstrukturen wie Schleifen und Verzweigungen helfen dir hierbei weiter.