【发布时间】:2018-12-13 16:09:02
【问题描述】:
'我正在使用休眠,我打算使用LinkedHashMap 对元素进行排序,
但它不起作用,因为我无法像那样初始化,所以我从控制器进行排序,所以它有效,但不是那么好,这是我的排序方法。
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;
}
我想要这样的订单
{1 Objetivo General, 1.1 Objetivo Especifico, 2 总体目标} 等等……
【问题讨论】:
-
对版本字符串使用比较器,而不仅仅是
Map.Entry.comparingByKey()。例如看这个问题:stackoverflow.com/questions/6701948/… -
@TheDonLUIS1:您尝试排序的实际键是什么? (请将它们放在问题的文本中,而不是作为文本图像。)你得到什么顺序,你想得到什么顺序?我认为 Alex Shesterov 走在正确的轨道上,实际上您可能正在获得“正确”排序的输出,但您只需要 不同的 顺序 - 这意味着您可能想要写一个
Comparator,表达你想要的顺序。 -
我的键是 {1 Objetivo General, 2 Objetivo General, 3 Objetivo General, 1.1 Objetivo Especifico, .........N Objetivo General } 所以排序是这样的,{ 1 Objetivo General, 10 Objetivo General, 11 Objetivo ...................2 Objetivo General},我想要的顺序是这个{1 Objetivo General, 1.1 Objetivo, 1.2, 2, 2.2, 2.3, 3。 ..} 等等。感谢您的宝贵时间
标签: java sorting dictionary