📅  最后修改于: 2023-12-03 15:23:24.469000             🧑  作者: Mango
在Java中,LinkedHashMap是一种实现了Map接口的散列表/链表数据结构,它保存插入的元素的顺序,并允许以插入顺序遍历元素。但是,如果要对元素按照键进行排序,我们可以通过一些简单的步骤实现。下面是如何在Java中按键对LinkedHashMap进行排序的方法。
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("c", 3);
map.put("b", 2);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
LinkedHashMap<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
import java.util.*;
public class Main {
public static void main(String[] args) {
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put("a", 1);
map.put("c", 3);
map.put("b", 2);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
LinkedHashMap<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
System.out.println(sortedMap); // 输出为 {a=1, b=2, c=3}
}
}
通过上述步骤,我们可以将LinkedHashMap按照键(key)进行排序。在实际开发中,我们可能需要对LinkedHashMap按照值(value)进行排序,也可以通过类似的方法实现。