У меня есть довольно большая и в основном рабочая программа для моего класса. Он должен читать файлы студента и инструктора и печатать их по их курсам. И это работает правильно. Тем не менее, студенты должны быть напечатаны в соответствии с их классом, сначала старшие и первокурсники. Я проверил несколько сообщений, но я просто не могу понять, что я делаю неправильно.Java: сортировка студентов по их уровню
public class Student extends Person
{
String Course;
int Credits;
int Points;
ArrayList<String> sortedStudentsList = new ArrayList<String>();
public Student(String id, String first, String last)
{
super(id,first,last);
}
public void student(String enrolledStudents) throws Exception
{
String csvFile = "StudentData.csv";
BufferedReader br = new BufferedReader(new FileReader(csvFile));
String line = null;
String firstLine = br.readLine();
while ((line = br.readLine()) != null)
{
String[] studentData = line.split(",");
super.setID(studentData[0]);
super.setFirstName(studentData[1]);
super.setLastName(studentData[2]);
setCredits(studentData[5]);
setPoints(studentData[6]);
setCourse(studentData[4]);
ArrayList<String> studentArray = new ArrayList<String>();
for(int k=0; k < 7; k--)
{
studentArray.add(studentData[k]);
}
Collections.sort(studentArray, sortStudentLevel);
if(studentData[4].equals(enrolledStudents))
{
for (int i=0; i < studentArray.size(); i++)
{
System.out.println(super.getFirstName() + " " + super.getLastName() + ", ID Number " + super.getID() + ", is a " + studentData[3] + " enrolled in " + getCourse() + ". Earned " + getCredits() + " credit(s) and " + getPoints() + " point(s)");
}
}
}
}
public static Comparator<String> sortStudentLevel = new Comparator<String>()
{
int compare(String s1, String s2)
{
String classLevel1 = s1.getClassLevel();
String classLevel2 = s2.getClassLevel();
return classLevel1.compareTo(classLevel2);
}
};
}
Я оставил сеттеры и геттеры для этого класса, поскольку я думал, что они не так важны. Любая помощь приветствуется.
EDIT: форматирование кода
'for (int k = 0; k <7; k -)' ... Почему 'k -'? Это бесконечный цикл. И 'k = -1' выдает ошибку –
Вы должны упомянуть' ArrayIndexOutOfBoundsException' в вопросе. –
С какой проблемой вы столкнулись? 'Collections.sort (studentArray, sortStudentLevel);' на первый взгляд выглядит нормально, поэтому кажется, что ваша проблема не связана с названием этого вопроса. Пожалуйста, отредактируйте ваше сообщение и правильно опишите, что [не работает] (http://importblogkit.com/2015/07/does-not-work/) – Pshemo