gpt4 book ai didi

java - 如何使用字符串键对 map 进行排序?像(1英尺,2英尺)

转载 作者:行者123 更新时间:2023-12-02 01:45:16 25 4
gpt4 key购买 nike

'我正在使用 hibernate,我计划使用 LinkedHashMap 对元素进行排序, 但它不起作用,因为我无法这样初始化,所以我从 Controller 进行排序,所以它起作用,但效果不佳,这是我的排序方法。

public LinkedHashMap<String, Indicador> OrdenarMap(Map<String, Indicador> map) {

LinkedHashMap<String, Indicador> sortedMap = new LinkedHashMap<>();

map.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));

return sortedMap;
}

These are my keys the sort its correct but...

我想要这样的订单

{1 Objetivo General,1.1 具体目标,2 Objetivo 将军}等等....

最佳答案

使用 TreeMap与定制Comparator .

默认情况下,字符串比较器按字典顺序比较字符串,这就是为什么您会看到这样的顺序 {"1", "10", "11", ..., "2", "20 “}

因为我假设您的 key 始终是 double 的,所以这个比较器应该可以工作:

TreeMap<String, Indicador> sortedMap = new TreeMap<>(new Comparator<String>() {
public int compare(String string1, String string2) {
return Double.parseDouble(string1) - Double.parseDouble(string2) < 0.0 ? -1 : 1;
}
});

关于java - 如何使用字符串键对 map 进行排序?像(1英尺,2英尺),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53765864/

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