訪問我在類中創建的數組列表時遇到問題。我嘗試瞭解類似於我的問題的答案,但不幸的是我無法解決問題。從另一個類調用對象數組列表並迭代它通過它
所以我有兩個類Student
和Person
,我想通過Person
ArrayList中的類Student
進行迭代。 (我知道這段代碼並不合理,我只是想明白)。
我嘗試兩種方法:
1)創建一個類型的人在學生類變量,並要求從人類中的get方法。
2)在返回數組列表的人員中創建一個get方法。 當我嘗試調用主方法中的isHere方法時,兩者都不能正常工作(假打印代替真)
我認爲我的兩種方法是初始化一個新的Person類型數組,而不是調用ArrayList元素已添加。如何解決這個問題?
import java.util.ArrayList;
public class Student {
private Person p;
private String name;
private int age;
private String address;
public Student() {
}
public Student(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public boolean isHere(String name) {
p = new Person();
// I also tried for(Person per : p.getList)
for (Person per : this.getL()) {
if (per.getName().equals(name)) {
System.out.println("hi");
return true;
}
}
return false;
}
public ArrayList<Person> getL() {
return p.getList();
}
public Person getP() {
return p;
}
public void setP(Person p) {
this.p = p;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
的Person
類:
import java.util.ArrayList;
public class Person {
private String name;
private ArrayList<Person> list = new ArrayList<Person>();
Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Person> getList() {
return list;
}
public void setList(ArrayList<Person> list) {
this.list = list;
}
public void add(String name) {
list.add(new Person(name));
}
}
從isHere方法中刪除'p = new Person();'並且用你的'public void setP(Person p)'方法在調用isHere之前。 –