在 LinkedHashMap 中按字母顺序对键进行排序

Sorting keys alphabetically in LinkedHashMap

我有一个 LinkedHashMap,我想按字母顺序对它的键(字符串)进行排序。但是,它不适用于 Collections.sort() 方法,因为它不会采用 LinkedHashMap 本身或 LinkedHashMap 的键集。

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

更好的方法是使用支持顺序的 Map,例如 TreeMap。

但是,如果您的设计有问题且无法修复,您可以这样做。

 LinkedHashMap<String, String> map = ...
 TreeMap<String, String> copy = new TreeMap<>(map);
 map.clear();
 map.putAll(copy);

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