Ich versuche, eine 2d Arraylist basierend auf dem ersten Element zu sortieren und beim Vergleich, ob die beiden Elemente gleich sind, dann sortieren sie nach dem 2. Element.Sortierung 2d Arraylist basiert auf zwei Elementen
So sieht meine Arraylist wie
[[1, 4, 0], [2, 5, 2], [3, 5, 3], [4, 3, 6]]
und ich mag es wie diese
[[4, 3, 6], [1, 4, 0], [2, 5, 2], [3, 5, 3]]
meine Arraylist Dies sieht auch
ArrayList<ArrayList<Integer>> processes = new ArrayList<>();
Das ist, was ich bisher habe mit Auswahlsortierung
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);
}
Wie wird '[[4, 3, 6], [1, 4, 0], [2, 5, 2], [3, 5, 3]] sortiert? – robotlos
Es wird nach dem ersten Element sortiert (1. Index der verschachtelten Array-Liste). –
Wie wäre es mit Buiilt-in Sortierfunktionen wie 'processs.sort ((firstElement, secondElement) -> Integer.compare (firstElement.get (1), secondElement.get (1));' – Palle