The homework requires reading two file and entering the information of students into two separate ArrayList
s. Then I need to perform 2 functions: combine the two lists and sort the combined list.
public abstract class Tools {
public static ArrayList<JUPASStudent> readJUPASFile(String f) throws Exception {
ArrayList<JUPASStudent> jList = new ArrayList<JUPASStudent>();
BufferedReader readbuffer = null;
readbuffer = new BufferedReader(new FileReader(f));
String strRead;
while ((strRead = readbuffer.readLine()) != null) {
String splitarray[] = strRead.split("/t");
String firstentry = splitarray[0];
String secondentry = splitarray[1];
JUPASStudent x = new JUPASStudent(firstentry, Double.parseDouble(secondentry));
jList.add(x);
}
readbuffer.close();
return jList;
}
public static ArrayList<NonJUPASStudent> readNonJUPASFile(String f) throws Exception {
ArrayList<NonJUPASStudent> njList = new ArrayList<NonJUPASStudent>();
BufferedReader readbuffer = null;
readbuffer = new BufferedReader(new FileReader(f));
String strRead;
while ((strRead = readbuffer.readLine()) != null) {
String splitarray[] = strRead.split("/t");
String firstentry = splitarray[0];
String secondentry = splitarray[1];
NonJUPASStudent x = new NonJUPASStudent(firstentry, Double.parseDouble(secondentry));
njList.add(x);
}
readbuffer.close();
return njList;
}
public static ArrayList<Student> combineArrayList(ArrayList<JUPASStudent> S1, ArrayList<NonJUPASStudent> S2) {
ArrayList<Student> sList = new ArrayList<Student>();
for (int i = 0; i < S1.size(); i++)
sList.add(S1.get(i));
for (int i = 0; i < S2.size(); i++)
sList.add(S2.get(i));
return sList;
}
public static ArrayList<Student> sort(ArrayList<Student> s){
for (int i = 0; i < s.size()-1; i++) {
for (int j = 0; i < s.size()-i-1; j++) {
if (s.get(j).getResult() > s.get(j+1).getResult()) {
Student Temp = s.get(j);
s.set(j, s.get(j+1));
s.set(j+1, Temp);
}
}
}
return s;
}
}
However, I keep getting "Index 1 out of bounds for length 1"