Java LinkedHashMap 是一种有序的哈希表,它继承自 HashMap 类,并且在插入元素的同时维护了一个按插入顺序排序的双向链表。由于 LinkedHashMap 继承自 HashMap,它具有 HashMap 的所有特性,例如高效的插入和查找操作。
在 Java 中遍历 LinkedHashMap 的方式有多种,以下是常用的几种方法:
1. 使用迭代器遍历
使用迭代器遍历 LinkedHashMap 可以按照插入顺序依次遍历所有的键值对。代码示例如下:
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("A", 1);
linkedHashMap.put("B", 2);
linkedHashMap.put("C", 3);
Iterator<Map.Entry<String, Integer>> iterator = linkedHashMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " : " + value);
}
上述代码中,首先创建一个 LinkedHashMap 对象,然后使用 put 方法插入了三个键值对。接下来,通过调用 entrySet 方法获取 LinkedHashMap 的键值对集合,并使用迭代器进行遍历。通过迭代器的 next 方法获取每个键值对的键和值,最后打印输出。
2. 使用 for-each 循环遍历
Java 5 引入了 for-each 循环语法,可以简化遍历容器的操作。使用 for-each 循环遍历 LinkedHashMap 代码示例如下:
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("A", 1);
linkedHashMap.put("B", 2);
linkedHashMap.put("C", 3);
for (Map.Entry<String, Integer> entry : linkedHashMap.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " : " + value);
}
上述代码与迭代器遍历方法类似,只是使用了 for-each 循环代替了迭代器的操作。通过遍历 LinkedHashMap 的 entrySet,可以依次获取每个键值对的键和值,并打印输出。
3. 使用 Java 8 的 forEach 方法遍历
Java 8 引入了新的 forEach 方法,可以对集合进行遍历操作。使用 forEach 方法遍历 LinkedHashMap 的代码示例如下:
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("A", 1);
linkedHashMap.put("B", 2);
linkedHashMap.put("C", 3);
linkedHashMap.forEach((key, value) -> {
System.out.println(key + " : " + value);
});
上述代码中,使用 forEach 方法对 LinkedHashMap 进行遍历。通过传入一个 Lambda 表达式,可以依次获取每个键值对的键和值,并进行打印输出。
通过以上几种遍历方式,可以方便地遍历 Java LinkedHashMap,并获取其中的键值对。根据实际的需求,选择合适的遍历方式可以提高代码的可读性和效率。