2017-06-28 3 views

Antwort

1

Voraussichtlich kennen Sie die spezifischen Positionen im Voraus? Wenn dies der Fall ist, erstellen Sie eine neue Liste mit den Elementen, die Sie sortieren möchten, sortieren Sie die Liste, und ersetzen Sie dann die Elemente in der ursprünglichen Liste durch die sortierte Liste, jeweils ein Element.

+0

Vielen Dank für den Trick. –

0

Würde so etwas funktionieren? Sie würden den Vergleicher mit einer Liste der Werte und der Liste der zu sortierenden Indizes erstellen:

private static class MyComparator implements Comparator<Integer>{ 

     private ArrayList<Integer> indexes; 
     private ArrayList<Integer> vals; 
     public MyComparator(ArrayList<Integer> indexes, ArrayList<Integer> vals){ 
      this.indexes = indexes; 
      this.vals = vals; 
     } 
     @Override 
     public int compare(Integer arg0, Integer arg1) { 

      if(indexes.contains(vals.indexOf(arg0)) && indexes.contains(vals.indexOf(arg1))){ 
       return Integer.compare(arg1, arg0); 
      } 
      return 0; 
     } 

    } 
+0

Das habe ich ausprobiert, leider hat es nicht geklappt. –

+0

Ich bekam Ausgaben, die wie erwartet aussahen. Ich denke, ich hätte dein konkretes Beispiel ausprobieren sollen, weil ich sehe, dass es anders ist. Es tut uns leid! –

Verwandte Themen