首页javasortJava Data Structure - 如何排序地图

Java Data Structure - 如何排序地图

我们想知道如何排序地图。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;

class MyComparator implements Comparator<Map.Entry> {
  public int compare(Entry o1, Entry o2) {
    Double valueOne = (Double) o1.getValue();
    Double valueTwo = (Double) o2.getValue();
    return (int) Math.signum(valueOne.compareTo(valueTwo));
  }
}
public class Main {
  public static void main(String[] args) {
    TreeMap tm = new TreeMap();
    tm.put(1, new Double(344.34));
    tm.put(0, new Double(123.22));
    tm.put(4, new Double(138.00));
    tm.put(2, new Double(919.22));
    tm.put(3, new Double(-119.08));

    List<Map.Entry> valueList = new ArrayList(tm.entrySet());
    Collections.sort(valueList, new MyComparator());

    Iterator<Map.Entry> iterator = valueList.iterator();
    while (iterator.hasNext()) {
      Map.Entry entry = iterator.next();
      System.out.println("Value: " + entry.getValue());
    }
  }
}