在 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);
这会碰巧起作用,但如果您添加一个键,您的地图将不再排序。
我有一个 LinkedHashMap,我想按字母顺序对它的键(字符串)进行排序。但是,它不适用于 Collections.sort() 方法,因为它不会采用 LinkedHashMap 本身或 LinkedHashMap 的键集。
我唯一的选择是在填充 LinkedHashMap 时手动对它们进行排序,但在此之前我想知道是否有人知道更好的方法。
更好的方法是使用支持顺序的 Map,例如 TreeMap。
但是,如果您的设计有问题且无法修复,您可以这样做。
LinkedHashMap<String, String> map = ...
TreeMap<String, String> copy = new TreeMap<>(map);
map.clear();
map.putAll(copy);
这会碰巧起作用,但如果您添加一个键,您的地图将不再排序。