2017-03-24 45 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()); 

如果您希望所有学生的名字,请尝试在其他的答案在这里表达的循环。