2016-01-10 3 views
1

Прошу прощения, если я использовал неправильный термин, но я только пытаюсь напечатать имя студента из ArrayList. Имя можно найти в кавычках.Как напечатать определенную переменную из ArrayList

import java.util.ArrayList; 
import java.util.Arrays; 


public class Student { 
private String name; 
private int idNum; 

public Student(String string, int i) { 
    name = string; 
    idNum = i; 
} 
public String getName() 
{return name;} 
public int getNum() 
{return idNum;} 
public String toString() 
{return name+" "+idNum;} 

public static void main(String[] args) { 
    ArrayList<Student> classroom = new ArrayList<Student>(); 
    Student s1 = new Student("Eugene", 2596); 
    classroom.add(0, s1); 
    Student s2 = new Student("Bob", 1111); 
    classroom.add(1, s2); 
    Student s3 = new Student("Gary", 7993); 
    classroom.add(2, s3); 
    Student s4 = new Student("Dan", 6689); 
    classroom.add(3, s4); 
    Student s5 = new Student("Joe Kid", 3592); 
    classroom.set(2, s5); 
    Student s6 = new Student("Sue Kim", 8541); 
    classroom.set(3, s6); 
    classroom.remove(0); 
    Student s7 = new Student("Bob Lee", 6317); 
    classroom.add(s7); 
    classroom.remove(4); 
    System.out.println(classroom.toString()); 
    for(int i=0; i<classroom.size(); i++){ 
     System.out.println(classroom.**getName**(i)); 
    } 
} 

} 

Была ошибка в конце с GetName (я положил его в звездочках), и я не знаю, как это исправить. Спасибо, если вы узнаете, как это исправить.

+2

'classroom.get (I) .getName () '- Сначала вы должны получить объект из' ArrayList', затем вы можете получить доступ к его свойствам. – MadProgrammer

+0

Nit: 'System.out.println (classroom.toString());' может быть записано как 'System.out.println (класс); ': метод будет автоматически вызывать' toStri ng() 'для вас (а также для обработки нулевого случая). Вы также можете просто написать 'classroom.add (новый Student (« Eugene », 2596));', что означает, что вам не нужно создавать новые имена переменных. –

ответ

1

Используйте это:

System.out.println(classroom.get(i).getName()); 

Вы должны получить доступ к Student объекта первого использования classroom.get(i), а затем получить доступ к его name.

Малый PS: если вы используете Java 8, вы можете сделать это:

classroom.stream() 
     .forEach(student -> System.out.println(student.getName())); 
+0

Исправлена ​​ошибка, спасибо. – Red

2

Вы могли бы сделать

for (Student student: classroom) { 
    System.out.println(student.getName()); 
} 
Смежные вопросы