我有一个“代码标记”形式的输入字符串列表
例如,
1001-40
1002-54
1003-23
1001-45
1004-60
预期输出:
1004-60
1002-54
1001-45
1003-23
如果值重复(如 1001),则使用最新的值,也需要排序。
我的第一个赌注是使用 TreeMap,但它会带来基于值的排序问题,这是不可能的。
Scanner in = new Scanner(System.in);
SortedMap<Integer, Integer> map = new TreeMap<Integer, Integer>(new Comparator<Integer>() {
public int compare(Integer i, Integer j) {
return(j.compareTo(i));
}
});
int i=0;
while(i<5)
{
String[] s = in.next().split("\\-");
map.put(Integer.parseInt(s[0]),Integer.parseInt(s[1]));
i++;
}
// Get a set of the entries
Set set = map.entrySet();
// Get an iterator
Iterator itr = set.iterator();
// Display elements
while(itr.hasNext()) {
Map.Entry me = (Map.Entry)itr.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
解决这种情况的最佳方法是什么?