按键 java 对 LinkedHashMap 进行排序



所以我是一个新手,我在地图上挣扎了很多。所以我有一张地图,我想按键升序排序。但我似乎找不到任何解决方案。感谢您的帮助!

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 的自然顺序反映某些对象的排序标准,那么您首先必须在这些对象上建立该顺序,然后再将该顺序中的对象添加到新的 LinkedHashMap 实例中。

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

如果您想要一个根据排序条件重新排序的地图,您应该查看树状图!

长话短说:您必须区分"基于广告顺序的订单"和"基于排序条件的顺序"。你想要后者,而LinkedHashMap是错误的地图类型。

最新更新