Ich versuche Kartenelemente (basierend auf Werten) zu sortieren, indem ich Collections.sort() verwende. Das Problem ist, dass mein Programm die Elemente in absteigender Reihenfolge sortiert, anstatt sie in aufsteigender Reihenfolge zu sortieren. Wie kann ich es in aufsteigender Reihenfolge sortieren? Unten ist mein Code.Wie sortiere ich Kartenelemente basierend auf Werten in aufsteigender Reihenfolge in Java?
package hashTableRR;
import java.util.*;
import java.util.Map.Entry;
public class OrderByValue {
public static void main(String [] args){
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(1, 4);
map.put(2, 6);
map.put(3, 1);
map.put(4, 1);
map.put(6, 8);
map.put(7, 5);
Set<Entry<Integer, Integer>> set = map.entrySet();
List<Entry<Integer, Integer>> list = new ArrayList<Entry<Integer, Integer>>(set);
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>()
{
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2){
return(o2.getValue()).compareTo(o1.getValue());
}
}
);
System.out.println("Keys\t\tValues");
for(Map.Entry<Integer, Integer> entry:list)
{
System.out.println(" "+entry.getKey()+"\t\t "+entry.getValue());
}
}
}
Versuchen 'return (o1.getValue()) mit compareTo (o2.getValue());.'. Bitte beachten Sie, dass sich der Bestellstatus vergleichen lässt. – aUserHimself
Vielen Dank, es hat funktioniert! – Miji05
Mögliches Duplikat von [Karte sortieren nach Werten (Java)] (http://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java) –