2017-03-24 60 views
0

我搜索了一些答案,但無法完全找到我正在尋找的答案。說如果我有一個ArrayList「學校」,並在該ArrayList裏有幾個「學生」對象。我將如何訪問每個單獨的ArrayList條目以調用每個學生對象上的方法?來自ArrayList的Java對象方法

舉例來說,我已經試過:

System.out.println(school[0].getStudentName()); 

但它似乎並沒有工作。

在學校裏面ArrayList是我通過這個創建的幾個學生對象。

public void addStudent(String name, int age) { 
    Student student = new Student(name, age); 
    school.add(student); 
} 
+2

通過使用List函數'Object get(int index)'https://docs.oracle.com/javase/7/docs/api/java/util/List.html#get%28int%29 –

+0

使用' school.get(int i)'其中'i'是你的'student'對象所在的索引。 –

+1

您將一個ArrayList與一個數組混合在一起。獲取數組元素使用'arrayname [index]'。獲取數組列表的元素使用'arraylistname.get(index)'。 – reporter

回答

2

使用Java5的增強的for循環:

for (Student student : school) { 
    System.out.println(student.getStudentName()); 
} 

使用迭代:

Iterator<Student> studentIterator = school.iterator(); 
while (studentIterator.hasNext()) { 
    System.out.println(studentIterator.next().getStudentName()); 
} 

使用索引的元素的訪問(細於ArrayList中,但不一定在其他列表中的實現):

for (int i = 0; i < school.size(); i++) { 
    System.out.println(school.get(i).getStudentName()); 
} 

如果你有一個數組,而不是一個ArrayList,然後使用數組索引訪問:

for (int i = 0; i < school.length; i++) { 
    System.out.println(school[i].getStudentName()); 
} 

或者把它包裝成一個列表,併爲上述遍歷:

for (Student student : Arrays.asList(school)) { 
    System.out.println(student.getStudentName()); 
} 
+0

幫助堆,歡呼雀! – Bruce219

0

你應該使用這樣的事情

List<Student> studentList = new ArrayList<Student>(); 
public void addStudent(String name, int age) { 
    Student student = new Student(name, age); 
    studentList .add(student); 
} 
for(Student stu:studentList){ 
    System.out.println("Name"+stu.name+" age"+stu.Age); 
} 
0

使用[]不能訪問ArrayList中的條目。您必須使用get(int index)方法。所以,你應該這樣做。

System.out.println(school.get(0).getStudentName()); 
0

ArrayLists沒有檢索數組所做元素的括號方式。 ArrayLists是具有方法的Java類(因此是對象)。以與其他對象相同的方式訪問方法。

嘗試:

System.out.println(school.get(0).getStudentName()); 

如果您希望所有學生的名字,請嘗試在其他的答案在這裏表達的循環。