gpt4 book ai didi

java - 在 Java 中按值对映射进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:27 25 4
gpt4 key购买 nike

Possible Duplicate:
How to sort a Map<Key, Value> on the values in Java?

这是我的作品:

ArrayList<Map.Entry<Integer, Integer>> suits = new ArrayList<Map.Entry<Integer, Integer>>();
suits.add(new AbstractMap.SimpleEntry(0, 3));
suits.add(new AbstractMap.SimpleEntry(1, 5));
suits.add(new AbstractMap.SimpleEntry(2, 1));
suits.add(new AbstractMap.SimpleEntry(3, 3));
Collections.sort(suits, new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Entry<Integer, Integer> e1, Entry<Integer, Integer> e2) {
if (e1.getValue() > e2.getValue())
return 1;
else if (e1.getValue() < e2.getValue())
return -1;
else if (e1.getKey() > e2.getKey())
return 1;
else if (e1.getKey() < e2.getKey())
return -1;
else
return 0;
}
});

它有效(至少在我包含的简单测试用例上)。它的目的是根据牌的数量(例如 3 黑桃、5 红心、5 方 block 、6 梅花)对一手牌进行排序,然后继续处理我们拥有较少牌的花色(3 黑桃)。

我发现按值对 Map 进行排序的问题很常见,而且我在理解其他地方提供的一些答案时遇到了一些困难,因为我绝对没有接受过正式的编码培训,也没有接受过 Java 培训 - 所以我自己做了一个。这段代码有什么明显的错误吗?如果它不值得每天 WTF,那对我来说就足够了。

谢谢。

最佳答案

我建议将 TreeMap 与比较器一起使用。你是对的,用 TreeMap 很难按值排序。您可以关注Sort a Map<Key, Value> by values (Java)这建议如何按值排序。

关于java - 在 Java 中按值对映射进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com