有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

按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)
    });

共 (1) 个答案

  1. # 1 楼答案

    LinkedHashMaP是基于插入顺序排序的。如果希望LinkedHashMap的自然顺序反映某些对象的排序标准,则必须先在这些对象上建立该顺序,然后再将该顺序的对象添加到新的LinkedHashMap实例中

    换句话说:您不能更改现有LinkedHashMap上的顺序-因为当您最初将元素添加到该映射时,顺序是固定的!或者更准确地说:您只能通过扩展LinkedHashMap类并的行为更改为打破其契约来实现这一点。但这没有道理。您只是使用了错误的数据结构来实现您的需求

    如果您想要一个基于排序标准对重新排序的映射,您应该查看一个树映射,例如

    长话短说:您必须区分“基于插入顺序的顺序”和“基于排序条件的顺序”。你想要的是后者,而LinkedHashMap是错误的