如何在Java中打印LinkedHashMap的所有映射?
在Java中,LinkedHashMap是一个流行的数据结构,它结合了双向链表和哈希映射的优点。由于它保留了插入顺序,因此元素的检索顺序与添加顺序相同。当我们需要以指定的顺序迭代键值对时,LinkedHashMap尤其有用。在我们需要打印LinkedHashMap中包含的所有映射的情况下,可以使用几种方法。在本文中,我们将研究两种在Java中有效打印所有LinkedHashMap映射的不同方法,每种方法都有其自身的优势和示例代码。
方法
利用entrySet()方法。
利用forEach()方法。
让我们来看看这两种方法:
方法一:利用entrySet()方法。
LinkedHashMap类提供的entrySet()函数是发布LinkedHashMap中所有映射的初始方法。此过程的结果是Map的一个集合。LinkedHashMap中的键值对包含在entry对象中。通过迭代此集合,我们可以轻松访问并显示每个映射。
此方法从LinkedHashMap中获取entry集合,并使用for-each循环进行迭代。我们分别使用getKey()和getValue()方法获取每个条目的键和值。通过在循环中显示键值对,可以查看LinkedHashMap中的所有映射。
算法
步骤一:导入所需的包。
步骤二:创建LinkedHashMap对象。
步骤三:插入LinkedHashMap键值对。
步骤四:利用entrySet()函数获取所有键值映射的集合。
步骤五:迭代该集合。
步骤六:打印集合中每个条目的键和值。
示例
//import the required package import java.util.LinkedHashMap; import java.util.Map; public class Main { public static void main(String[] args) { // Create a LinkedHashMap LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>(); // Insert key-value pairs linkedHashMap.put("Pen", 10); linkedHashMap.put("Rubber", 5); linkedHashMap.put("Paper", 8); linkedHashMap.put("File", 20); // Print all mappings with the help of entrySet() for (Map.Entry<String, Integer> entry : linkedHashMap.entrySet()) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } } }
输出
Key: Pen, Value: 10 Key: Rubber, Value: 5 Key: Paper, Value: 8 Key: File, Value: 20
方法二:利用forEach()方法。
随着Java 8的引入,LinkedHashMap类添加了forEach()方法,使我们可以快速对每个键值对执行操作。此方法使用lambda表达式和forEach()方法来输出LinkedHashMap中的每个映射。
在此方法中,直接调用LinkedHashMap对象的forEach()方法。我们在lambda表达式中定义打印逻辑,其中我们连接键和值以获得所需的输出。由于它消除了显式迭代循环的需要,因此当我们希望采用更简洁和函数式编码风格时,此方法非常有用。
算法
步骤一:导入必要的包,然后创建名为Main的类。构造一个LinkedHashMap对象。
步骤二:向LinkedHashMap添加键值对。
步骤三:使用forEach()方法迭代每个条目。
步骤四:最后打印每个条目的键和值。
示例
//import the required package import java.util.LinkedHashMap; public class Main { public static void main(String[] args) { // Create a LinkedHashMap LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>(); // Insert key-value pairs linkedHashMap.put("Pen", 10); linkedHashMap.put("Rubber", 5); linkedHashMap.put("Paper", 8); linkedHashMap.put("File", 20); // Print all mappings one by one linkedHashMap.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value)); } }
输出
Key: Pen, Value: 10 Key: Rubber, Value: 5 Key: Paper, Value: 8 Key: File, Value: 20
结论
可以使用Java中的entrySet()方法或forEach()方法来打印LinkedHashMap中的每个映射。使用entrySet()方法提供的键值映射,我们可以迭代每个条目并报告所需的结果。另一方面,forEach()方法通过接受lambda表达式来执行打印任务,从而简化了该过程。本文描述了两种方法。这两种方法都很有效,并能产生预期的结果。选择最适合您的编码需求和偏好的选项。