「コードマーク」形式の入力文字列のリストがあります
例えば、
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());
}
この状況への最善のアプローチは何ですか?