2015-08-17 40 views
0

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

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

+1

你是什么意思“排序键”?你是否想按照字母键顺序遍历条目,或者直接提取键并对它们进行排序? – Bohemian

+0

按字母顺序迭代输入对我来说已经足够了 – ImNoProGrammer

回答

0

更好的方法是使用支持订单的地图,如TreeMap。

但是,如果你有一个破碎的设计,你不能修复你可以做到这一点。

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

这会发生工作,但如果您添加一个键,您的地图将不再被排序。

+0

谢谢!它工作得很好。 – ImNoProGrammer