试图将程序从数组转换为数组列表java

时间:2015-04-29 09:56:29

标签: java arrays arraylist

我有两节课。目前,您可以将99个条目保存到.txt文件中。显然我想扩展这个。如果ExamGradesGUI中的以下内容是arraylist而不是数组,那将是很好的:

    String[] firstName = new String[99];
    String[] lastName = new String[99];
    String[] subjectUnit = new String[99];
    double[] examMark = new double[99];

我设法从下面声明数组开始(对于firstName):

ArrayList<String> firstName = new ArrayList<String>();

然后,我不知道如何使用我的get和set方法,因为显然它们仍然是数组形式。如果有人可以提供帮助,我会很感激。感谢

2 个答案:

答案 0 :(得分:1)

也许应该有更多的OOP:

List<Student> students = new ArrayList<Student>();

Class Student{
    private String firstName;
    private String lastName;
    private String subjectUnit;
    private double examMark ;
    // Generate getters and setters and constructor

}

// So the code to create a new Student in getText(): 
 Student newStudent = new Student ( 
       firstNameTxt.getText() ,
       lastNameTxt.getText(), 
    subjectUnitTxt.getItemAt(subjectUnitTxt.getSelectedIndex()), 
    Double.parseDouble(examMarkTxt.getText()) );

// add the newStudent to the list
students.add( newStudent );

答案 1 :(得分:0)

有一种方法List#add(int index,E element)

void add(int index,
       E element)
  

将指定元素插入此列表中的指定位置   (可选操作)。移动当前位于该位置的元素   (如果有的话)和右边的任何后续元素(在他们的   指数)。

使用此方法可以替换

firstName[i] = firstNameTxt.getText();

这个用

firstName.add(i,firstNameTxt.getText());

<强>更新

你可以替换

public void addRecords(String[] first, String[] last, String[] subject, double[] mark) 

  public void addRecords(List<String> first,List<String> last, List<String> subject,List<double> mark) {
this.firstNameList=first;
this.lastNameList=last;
this.subjectList=subject;
this.marksList=mark;
}