Hallo,
ich würde gerne eine Liste A von Listen von Integer sortieren lassen. Die untergeordneten Listen sind sortiert. Jetzt möchte ich erreichen, dass die einzelnen Listen in der obergeordneten Liste sortiert sind.
1. nach der Initialisierung:
[[8, 2, 5, 9, 1, 3, 7, 6, 10, 4], [10, 10, 7, 1, 2, 5, 10, 3, 6, 4], [2, 8, 7, 1, 10, 5, 10, 3, 6, 4]]
2. nach der Sortierung der einzelnen Listen und in umgekehrter Reihenfolge
[[10, 9, 8, 7, 6, 5, 4, 3, 2, 1], [10, 10, 10, 7, 6, 5, 4, 3, 2, 1], [10, 10, 8, 7, 6, 5, 4, 3, 2, 1]]
3. fehlt: Folgendes soll erscheinen:
[[10, 10, 10, 7, 6, 5, 4, 3, 2, 1], [10, 10, 8, 7, 6, 5, 4, 3, 2, 1], [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]
Das heißt, die Listen in der Liste A sollen geordnet werden. Die erste Liste soll die Liste sein, die höchsten Werte hat. Ist der erste Wert gleich, so vergleiche mit dem zweiten Wert und sortiere. Sollte der wieder gleich sein, setze fort.
Ich bräuchte einmal Hilfe, wie ich das umsetzen kann.
Mein Versuch sieht wie folgt aus:
Vielen Dank für eure Hilfe im voraus.
Gruß
sdy
ich würde gerne eine Liste A von Listen von Integer sortieren lassen. Die untergeordneten Listen sind sortiert. Jetzt möchte ich erreichen, dass die einzelnen Listen in der obergeordneten Liste sortiert sind.
1. nach der Initialisierung:
[[8, 2, 5, 9, 1, 3, 7, 6, 10, 4], [10, 10, 7, 1, 2, 5, 10, 3, 6, 4], [2, 8, 7, 1, 10, 5, 10, 3, 6, 4]]
2. nach der Sortierung der einzelnen Listen und in umgekehrter Reihenfolge
[[10, 9, 8, 7, 6, 5, 4, 3, 2, 1], [10, 10, 10, 7, 6, 5, 4, 3, 2, 1], [10, 10, 8, 7, 6, 5, 4, 3, 2, 1]]
3. fehlt: Folgendes soll erscheinen:
[[10, 10, 10, 7, 6, 5, 4, 3, 2, 1], [10, 10, 8, 7, 6, 5, 4, 3, 2, 1], [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]
Das heißt, die Listen in der Liste A sollen geordnet werden. Die erste Liste soll die Liste sein, die höchsten Werte hat. Ist der erste Wert gleich, so vergleiche mit dem zweiten Wert und sortiere. Sollte der wieder gleich sein, setze fort.
Ich bräuchte einmal Hilfe, wie ich das umsetzen kann.
Mein Versuch sieht wie folgt aus:
Java:
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Sortierung {
private ArrayList<ArrayList<Integer>> list;
private class ListComparator implements Comparator<ArrayList<Integer>>{
@Override
public int compare(ArrayList<Integer> o1, ArrayList<Integer> o2) {
// TODO Auto-generated method stub
return o1.get(0).compareTo(o2.get(0));
}
}
public Sortierung(){
list = new ArrayList<ArrayList<Integer>>();
initLists();
print();
sortList();
System.out.println("");
print();
System.out.println("");
sortMainList();
print();
}
private void sortMainList(){
Collections.sort(list, new ListComparator());
}
private void sortList(){
for(int i = 0; i<list.size(); i++){
Collections.sort(list.get(i));
Collections.reverse(list.get(i));
}
}
private void print(){
System.out.println(list);
// for(int i = 0; i<list.size(); i++){
// System.out.println(list.get(i));
// }
}
private void initLists(){
// erstes Liste
ArrayList<Integer> subList = new ArrayList<Integer>();
subList.add(8);
subList.add(2);
subList.add(5);
subList.add(9);
subList.add(1);
subList.add(3);
subList.add(7);
subList.add(6);
subList.add(10);
subList.add(4);
list.add(subList);
// zweite Liste
subList = new ArrayList<Integer>();
subList.add(10);
subList.add(10);
subList.add(7);
subList.add(1);
subList.add(2);
subList.add(5);
subList.add(10);
subList.add(3);
subList.add(6);
subList.add(4);
list.add(subList);
// dritte Liste
subList = new ArrayList<Integer>();
subList.add(2);
subList.add(8);
subList.add(7);
subList.add(1);
subList.add(10);
subList.add(5);
subList.add(10);
subList.add(3);
subList.add(6);
subList.add(4);
list.add(subList);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Sortierung();
}
}
Vielen Dank für eure Hilfe im voraus.
Gruß
sdy