【发布时间】:2019-02-17 16:57:42
【问题描述】:
我正在尝试为 LinkedHashMap/ArrayList 编写选择排序方法,但我遇到了问题,我不确定出了什么问题。它编译但实际上并不对列表进行排序。我正在尝试按值降序排序。任何帮助将不胜感激。
public static List sort(LinkedHashMap<String, Integer> words) {
List<Map.Entry<String, Integer>> entries = new ArrayList<>(words.size());
entries.addAll(words.entrySet());
int max;
for(int i = 0; i < entries.size(); i++) {
max = entries.get(i).getValue();
for(int j = i + 1; j < entries.size(); j++) {
if (entries.get(j).getValue().compareTo(entries.get(max).getValue()) > 0) {
max = entries.get(j).getValue();
}
}
if(max != i) {
Map.Entry temp1 = entries.get(i);
entries.set(entries.get(i).getValue(), entries.get(max));
entries.set(entries.get(max).getValue(), temp1);
}
}
return entries;
}
【问题讨论】:
-
似乎在整个代码中,索引和值可以互换使用,
max分配给值,然后与索引进行比较。
标签: java sorting dictionary hashmap selection-sort