gpt4 book ai didi

java - 根据 map 列表中的键比较值

转载 作者:行者123 更新时间:2023-11-30 02:47:38 26 4
gpt4 key购买 nike

我有一个字符串到字符串的映射,我想根据 kay F 的值对映射进行排序,但我的代码无法执行此操作。请指教。

    Map<String, String> h = null;
Map<String, String> h1 = null;
Map<String, String> h2 = null;
listSummaryMap = new ArrayList<Map<String, String>>();

h = new HashMap<String, String>();
h.put("SUCCESS", "27");
h.put("TOTAL_HOTELS", "86");
h.put("F", "86");
h.put("RESERVATION_MODE", "86");
h.put("PARTNER_NAME", "86");

h1 = new HashMap<String, String>();
h1.put("SUCCESS", "27");
h1.put("TOTAL_HOTELS", "86");
h1.put("F", "36");
h1.put("RESERVATION_MODE", "86");
h1.put("PARTNER_NAME", "86");

h2 = new HashMap<String, String>();
h2.put("SUCCESS", "27");
h2.put("TOTAL_HOTELS", "86");
h2.put("F", "28");
h2.put("RESERVATION_MODE", "86");
h2.put("PARTNER_NAME", "86");

listSummaryMap .add(h);
listSummaryMap .add(h1);
listSummaryMap .add(h2);


Collections.sort(listSummaryMap , new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
return o2.get("F").compareTo(o1.get("F"));
}
});

最佳答案

String转换为Integer并作为Integer进行比较:

    public int compare(Map<String, String> o1, Map<String, String> o2) {
return Integer.valueOf(o2.get("F")).compareTo(Integer.valueOf(o1.get("F")));
}

这是假设 "F" 键始终存在于 Map 中,并且其值始终可以解析为 Integer .

顺便说一句,我不知道您将 Map 添加到 listSummaryMap 的位置。您是否忘记在问题中包含该代码?

关于java - 根据 map 列表中的键比较值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695964/

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