Java的Map
的排序方式如下。
如果要保證Map
中的元素順序,不能使用HashMap
,因為不保證元素的排序不變。
LinkedHashMap
的排序方式為元素放入的順序。
TreeMap
是以key做排序,因此key必須能比較,可實作Comparable
介面或傳入Comparator
的實作。
// 不保證順序不變
HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(5, "e");
hashMap.put(2, "b");
hashMap.put(4, "d");
hashMap.put(3, "c");
hashMap.put(1, "a");
System.out.println(hashMap); // {1=a, 2=b, 3=c, 4=d, 5=e}
// 依加入順序排序
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>(); // 依插入順序排愈
linkedHashMap.put(5, "e");
linkedHashMap.put(2, "b");
linkedHashMap.put(4, "d");
linkedHashMap.put(3, "c");
linkedHashMap.put(1, "a");
System.out.println(linkedHashMap); // {5=e, 2=b, 4=d, 3=c, 1=a}
// 以key排序
TreeMap<Integer, String> treeMap = new TreeMap<>();
treeMap.put(5, "e");
treeMap.put(2, "b");
treeMap.put(4, "d");
treeMap.put(3, "c");
treeMap.put(1, "a");
System.out.println(treeMap); // {1=a, 2=b, 3=c, 4=d, 5=e}
沒有留言:
張貼留言