以下是一些重要的
Map实现的特征差异:
> LinkedHashMap:“具有可预测的迭代顺序[…],这通常是将键插入到地图(插入顺序)中的顺序。
> HashMap:“对地图的顺序不作任何保证”
> TreeMap:“根据其键的自然排序或比较器”
所以看来LinkedHashMap就是你在这种情况下需要的。
这是一个例子来说明差异的片段它还显示了迭代Map的所有条目的常见方法,以及如何使用接口引用对象,从而允许选择实现的极大灵活性。
import java.util.*;
public class MapExample {
public static void main(String[] args) {
populateThenDump(new HashMap());
populateThenDump(new TreeMap());
populateThenDump(new LinkedHashMap());
}
static void populateThenDump(Map map) {
System.out.println(map.getClass().getName());
map.put("Zero", 0);
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
map.put("Four", 4);
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
}
}
java.util.HashMap // unordered, results may vary
Three => 3
Zero => 0
One => 1
Four => 4
Two => 2
java.util.TreeMap // ordered by String keys lexicographically
Four => 4
One => 1
Three => 3
Two => 2
Zero => 0
java.util.LinkedHashMap // insertion order
Zero => 0
One => 1
Two => 2
Three => 3
Four => 4
相关问题
>如果要在迭代时修改地图,则需要使用其Iterator。
类似问题