Java 在LinkedHashMap中按字母顺序排序键

Java 在LinkedHashMap中按字母顺序排序键,java,sorting,key,linkedhashmap,Java,Sorting,Key,Linkedhashmap,我有一个LinkedHashMap,我想按字母顺序对它的键(字符串)排序。但是,它不能与Collections.sort()方法一起使用,因为它既不接受LinkedHashMap本身,也不接受LinkedHashMap的键集 我唯一的选择是在填充LinkedHashMap时手动对它们进行排序,但在此之前,我想知道是否有人知道更好的方法。更好的方法是使用支持顺序的映射,如TreeMap 然而,如果你有一个坏的设计,你不能修复,你可以这样做 LinkedHashMap<String, Str

我有一个LinkedHashMap,我想按字母顺序对它的键(字符串)排序。但是,它不能与Collections.sort()方法一起使用,因为它既不接受LinkedHashMap本身,也不接受LinkedHashMap的键集


我唯一的选择是在填充LinkedHashMap时手动对它们进行排序,但在此之前,我想知道是否有人知道更好的方法。

更好的方法是使用支持顺序的映射,如TreeMap

然而,如果你有一个坏的设计,你不能修复,你可以这样做

 LinkedHashMap<String, String> map = ...
 TreeMap<String, String> copy = new TreeMap<>(map);
 map.clear();
 map.putAll(copy);
LinkedHashMap=。。。
树映射副本=新树映射(映射);
map.clear();
地图。地图(复印件);

这可能会起作用,但如果您添加一个键,您的地图将不再排序。

什么是“对键排序”?你想按字母键顺序遍历条目,还是按字面意思提取键并对它们进行排序?按字母顺序遍历条目对我来说就足够了