Я пытаюсь сортировать 2-й Arraylist на основе 1-го элемента и при сравнении, если оба элемента одинаковы, сортируйте их по 2-му элементу.Сортировка 2d arraylist на основе двух элементов
Так что мой Список_массивов выглядит
[[1, 4, 0], [2, 5, 2], [3, 5, 3], [4, 3, 6]]
и я хочу тоже выглядеть так
[[4, 3, 6], [1, 4, 0], [2, 5, 2], [3, 5, 3]]
Это мой ArrayList
ArrayList<ArrayList<Integer>> processes = new ArrayList<>();
Это то, что я до сих пор с помощью выбор сортировка
int smallInt;
int j;
int smallIntIndex;
for(int i = 1; i<=processes.size();i++){
smallInt = processes.get(i-1).get(1);
smallIntIndex = i-1;
for(j=i;j<processes.size();j++){
if(processes.get(j).get(1)==smallInt){
//not exactly sure what goes in here
}else if(processes.get(j).get(1)<smallInt){
smallInt = processes.get(j).get(1);
smallIntIndex = j;
}
}
ArrayList<Integer> temp = processes.get(smallIntIndex);
processes.set(smallIntIndex,processes.get(i-1));
processes.set(i-1,temp);
}
Как '[[4, 3, 6], [1, 4, 0], [2, 5, 2], [3, 5, 3]]' отсортированы? – robotlos
Сортируется на основе 1-го элемента (1-й индекс списка вложенных массивов). –
Как насчет использования функций сортировки buiilt-in, таких как 'process.sort ((firstElement, secondElement) -> Integer.compare (firstElement.get (1), secondElement.get (1));' – Palle