gpt4 book ai didi

java - 通过键java对LinkedHashMap进行排序

转载 作者:行者123 更新时间:2023-12-03 18:48:54 24 4
gpt4 key购买 nike

所以我是一个新手,我在 map 方面苦苦挣扎。所以我有一张 map ,我想按升序键对其进行排序。但我似乎找不到任何解决方案。感谢您的帮助!

 LinkedHashMap<String, String> resulting= new LinkedHashMap<>();
resulting=resulting.entrySet().stream().sorted((a,b)->{
String first=a.getKey();
String second=b.getKey();
return first.compareTo(second)
});

最佳答案

LinkedHashMaP 根据插入 顺序排序。如果您希望 LinkedHashMap 的自然顺序反射(reflect)某些对象的排序标准,那么您首先必须在这些对象上建立该顺序,然后再然后将对象添加到该订单到一个新的 LinkedHashMap 实例。

换句话说:您无法更改现有 LinkedHashMap 的顺序 - 因为当您最初将元素添加到该映射时,顺序是固定的!或者更准确地说:您只能通过扩展 LinkedHashMap 类并更改它的行为以破坏它的契约来做到这一点。但这没有意义。您只是在使用错误的数据结构来实现您的要求。

如果您想要一个根据排序标准重新排序的 map ,您应该查看 TreeMap 示例!

长话短说:您必须区分“基于插入顺序的顺序”和“作为排序标准结果的顺序”。您想要后者,而 LinkedHashMap 是错误的映射类型。

关于java - 通过键java对LinkedHashMap进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45631086/

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