Я работаю над сортировкой обмена для ArrayList объектов, чтобы его можно было отсортировать по возрастанию в зависимости от значения в объекте. Когда я его компилирую, все работает отлично, пока последний элемент не отсортирован должным образом. Подозреваю, что проблема в итераторе. Я пробовал много комбинаций, но сортировка не выполняется должным образом. Кроме того, я не могу использовать sort () или какие-либо готовые библиотеки. Буду признателен за любые рекомендации!
void sortAndDisplay (ArrayList<Car> cars) {
Car temp;
for (int i = 0; i < cars.size() -1; i++) {
for (int j = i+1; j < cars.size(); j++ ) {
if (((cars.get(i).getMake()).compareToIgnoreCase(cars.get(j).getMake()) > 0)) {
temp = cars.get(i);
cars.set(i, cars.get(j));
cars.set(j, temp);
}
}
}
for (int i = 0; i < cars.size(); i++) {
System.out.print(cars.get(i)+"\n\n");
}
}
Класс Car:
public class Car {
String make;
String model;
public Car (String make,
String model) {
this.make = make;
this.model = model;
}
public String getMake() {
return make;
}
Метод, который я использовал для чтения значений из файла:
ArrayList<Car> readCars(FileReader file) throws Exception {
String arr[] = {};
String line = "";
BufferedReader scan = new BufferedReader(file);
ArrayList<Car> carsArr = new ArrayList<Car>();
while ((line = scan.readLine()) != null) {
arr = line.split(",");
Car car = new Car(arr[0], arr[1]);
carsArr.add(car);
}
System.out.println("The file was read.");
return carsArr;
}