以下是一些重要
Map实现的特征差异:
linkedHashMap
:“具有可预测的迭代顺序,通常是将键插入映射 的顺序 ( 插入顺序 )。”HashMap
:“不保证地图的顺序”TreeMap
:“根据其键的自然顺序或按Comparator
”- 即是一个
SortedMap
- 即是一个
因此,
linkedHashMap在这种情况下,您需要的就是它。
以下是说明差异的代码段;它还显示了遍历的所有条目的通用方法
Map,以及如何使用接口引用对象使实现的选择具有极大的灵活性。
import java.util.*;public class MapExample { public static void main(String[] args) { populateThenDump(new HashMap<String,Integer>()); populateThenDump(new TreeMap<String,Integer>()); populateThenDump(new linkedHashMap<String,Integer>()); } static void populateThenDump(Map<String,Integer> 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<String,Integer> entry : map.entrySet()) { System.out.println(entry.getKey() + " => " + entry.getValue()); } }}
以上代码段的输出为(如ideone.com所示):
相关问题java.util.HashMap // unordered, results may varyThree => 3Zero => 0One => 1Four => 4Two => 2java.util.TreeMap // ordered by String keys lexicographicallyFour => 4One => 1Three => 3Two => 2Zero => 0java.util.linkedHashMap // insertion orderZero => 0One => 1Two => 2Three => 3Four => 4
- 遍历地图
- 迭代并从地图中删除
- 如果要在迭代时修改地图,则需要使用
Iterator
。
- 如果要在迭代时修改地图,则需要使用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)