[FIXED] Java-Sortierung mit anonymer Klasse

Ausgabe

Ich habe Klasse, in der ich eine Liste sortiere.

import java.util.*;

public class First 
{

    private static HashMap<String,Second> msgs;

    public static void main(String[] args) 
    {           

    List<String> ls=new ArrayList<String>();


   ls.add("fourth");
   ls.add("2");
   ls.add("second");
   ls.add("first");
   ls.add("third");
   ls.add("1");

   Iterator it=ls.iterator();

   // before sorting
   while(it.hasNext())
   {
     String s=(String)it.next();
     System.out.println(s);
   }

   Collections.sort(ls, new Comparator(){
       public int compare(Object o1, Object o2) {
           return -1;
           // it can also return 0, and 1
        }
    });

System.out.println(" ");

//after sorting
   Iterator iti=ls.iterator();
   while(iti.hasNext())
   {
     String s=(String)iti.next();

     System.out.println(s);
   }

}


}

Nachdem das Programm ausgeführt wurde, erhalte ich diese Werte:

1    
third
first
second
2
fourth

Meine Frage ist, wie sich die Funktion Collection.sort() hier verhält. Bei der Rückgabe von -1 von der Vergleichsfunktion erhalten wir die umgekehrte Reihenfolge der Liste. Wie können wir dann andere Sortierreihenfolgen erhalten? Welche Rolle spielt die Rückgabe von 0 und 1?

Lösung

Schließlich habe ich die Sortierfunktion auf diese Weise geändert, um sortierte Daten zu erhalten.

 Collections.sort(ls, new Comparator(){
      
      public int compare(Object o1, Object o2) 
      {
          String sa = (String)o1;
          String sb = (String)o2;
                            
          int v = sa.compareTo(sb);                             
          return v;  // it can also return 0, and 1
         
       }
 });


Beantwortet von –
Osman Khalid


Antwort geprüft von –
Cary Denson (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like