Вы получаете ошибку компиляции, потому что невозможно использовать оператор '=' для void функций (таких как nums.set(j, nums.get(j+1))
). Сеттеры всегда недействительны, и вы ничего не можете назначить! Подпись установщика ArrayList выглядит следующим образом:
public E set(int index, E element)
, где первый параметр - это индекс массива (0, 2, 3 ... N), второй - это значение, которое вы хотите установить под этим индексом.
Кстати, ваш выбор сортировки выглядит странно. Попробуйте этот код:
public static void doSelectionSort(ArrayList<Integer> arr) {
for (int i = 0; i < arr.size(); i++) {
// find position of smallest num between (i + 1)th element and last element
int pos = i;
for (int j = i; j < arr.size(); j++) {
if (arr.get(j) < arr.get(pos))
pos = j;
}
// Swap min (smallest num) to current position on array
int min = arr.get(pos);
arr.set(pos, arr.get(i));
arr.set(i, min);
printOut(i + 1, arr);
}
}