2013-03-13 5 views
1

Я новичок в Java, и я начинаю работать с ArrayLists. То, что я пытаюсь сделать, это создать ArrayList для студентов. У каждого ученика есть другой атрибут, связанный с ними (name, id). Я пытаюсь выяснить, как добавить новый объект-ученик с этими атрибутами. Вот что у меня есть:создать новый объект в arraylist с атрибутами

ArrayList <Student> studentArray; 
public Student(String name, int id) { 
    this.fname = name; 
    this.stId = id; 
} 
public Stromg getName() { 
    return fname; 
} 
public int getId() { 
    return stId; 
} 
public boolean setName(String name) { 
    this.fname = name; 
    return true; 
} 
public boolean setIdNum(int id) { 
    this.stId = id; 
    return true; 
} 
+0

Так что на самом деле ваш вопрос? Что происходит не так? – uba

+0

Как создать новый объект (Student) с именем и идентификатором, связанным с ним, который вводит пользователь? – bardockyo

+0

Я предполагаю, что 'Stromg' означает' String', иначе это не будет компилироваться (если только у вас на самом деле не было класса Stromg). – Makoto

ответ

6

Что вам нужно что-то вроде следующего:

import java.util.*; 

class TestStudent 
{ 
    public static void main(String args[]) 
    { 
     List<Student> StudentList= new ArrayList<Student>(); 
     Student tempStudent = new Student(); 
     tempStudent.setName("Rey"); 
     tempStudent.setIdNum(619); 
     StudentList.add(tempStudent); 
     System.out.println(StudentList.get(0).getName()+", "+StudentList.get(0).getId()); 
    } 
} 

class Student 
{ 
    private String fname; 
    private int stId; 

    public String getName() 
    { 
     return this.fname; 
    } 

    public int getId() 
    { 
     return this.stId; 
    } 

    public boolean setName(String name) 
    { 
     this.fname = name; 
     return true; 
    } 

    public boolean setIdNum(int id) 
    { 
     this.stId = id; 
     return true; 
    } 
} 
+0

Именно это я и искал. Спасибо, что помогли. – bardockyo

+0

@ bardockyo: Приятно помочь. :) –

1
final List<Student> students = new ArrayList<Student>(); 
students.add(new Student("Somename", 1)); 

... и так далее добавить больше студентов

2

Вы инстанцируете Student объект, передавая соответствующие значения в конструктор.

Student s = new Student("Mr. Big", 31); 

Вы помещаете элементы в ArrayList (или List) с помощью оператора .add(). *

List<Student> studentList = new ArrayList<Student>(); 
studentList.add(s); 

Вы получите ввод данных пользователя с помощью использования Scanner связанного с System.in.

Scanner scan = new Scanner(System.in); 
System.out.println("What is the student's name?"); 
String name = scan.nextLine(); 
System.out.println("What is their ID?"); 
int id = scan.nextInt(); 

Вы повторяете это с помощью петли. Эта часть должна быть оставлена ​​в качестве упражнения для читателя.

*: Есть и другие варианты, но add() просто добавляет его в конец, что обычно является тем, что вы хотите.

+0

Спасибо за ответ. Я получаю именно то, что вы говорите, но какая цель - мои методы get/set, используемые в моем проекте, если я ставлю значения так, как вы говорите? – bardockyo

+0

Аксессоры и мутаторы. Вы хотите получить доступ к значению их имени и их идентификатора, но действительно ли вам нужно их изменить? Возможно, стоит снять сеттеры на них. – Makoto

+0

@bardockyo Значения еще не находятся в объекте Студента, вам нужно поместить их с помощью сеттеров –

Смежные вопросы