如何在Java中迭代LinkedHashMap?
LinkedHashMap是一个与HashMap相同的类,但它还提供了一个跟踪元素插入顺序的功能。HashMap不保留元素添加的顺序,尽管它允许快速插入、查找和删除元素。
LinkedHashMap通过维护映射中每个条目的链表来解决这个问题。这个链表按照元素添加的顺序存储元素。因此,当迭代LinkedHashMap时,元素将按照添加它们的顺序返回。
使用的方法
要在Java中迭代LinkedHashMap,可以使用两种主要方法:
使用keySet()和get()方法
使用entrySet()和Iterator
方法1:使用keySet()和get()方法
keySet()方法返回映射中所有键的集合。get()方法返回与给定键关联的值。我们可以通过迭代keySet()并对每个键调用get()来打印映射中的所有键值对。
语法
linked_hash_map.keySet()
LinkedHashMap类的keySet()方法不需要任何参数。它返回一个包含LinkedHashMap中所有键的集合。
可以使用get()方法迭代这个键集合来获取映射中与键关联的值。
使用for循环反复迭代映射的键。for循环将迭代keySet()方法返回的集合。在循环的每次迭代中,将检索集合中的当前键,然后使用get()方法获取映射中关联的值。
keySet()
此代码使用keySet()方法从LinkedHashMap中检索键集,然后使用for-each循环迭代每个键。在循环内,它使用get()方法检索每个键对应的值,并打印键值对。
算法
步骤1 - 首先创建一个对象。这里我们使用了LinkedHashMap。
步骤2 - 在映射上创建一些键值对。
步骤3 - 使用keySet()方法从映射中获取键集。
步骤4 - 使用for循环迭代键。
步骤5 - 对于每个键,使用get()方法检索与该键关联的值。
步骤6 - 打印键及其对应的值。
示例
// Iterate through LinkedHashMap with the help of keySet() and get() Method import java.util.LinkedHashMap; import java.util.Set; public class Tutorialspoint { public static void main(String a[]){ // creating the object of LinkedHashMap LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>(); // addition of the elements in linkedHashMap linkedHashMap.put("P", "Python"); linkedHashMap.put("J", "Java"); linkedHashMap.put("R", "Ruby"); Set<String> keys = linkedHashMap.keySet(); // LinkedHashMap's elements are printed for (String key : keys) { System.out.println(key + " -- " + linkedHashMap.get(key)); } } }
输出
P -- Python J -- Java R -- Ruby
方法2:使用entrySet()和Iterator
使用entrySet()方法和Iterator迭代LinkedHashMap允许您按特定顺序遍历映射的条目,保留插入顺序。
语法
Linkedhash_map.entrySet()
参数 - 此方法不接受任何输入参数。
返回值:此方法返回一个包含与LinkedHashMap相同元素的集合。
换句话说,该方法无需用户提供任何数据即可使用。它只返回一个包含LinkedHashMap内容副本的集合。
entrySet()
代码示例说明如何迭代LinkedHashMap。它打印其条目。它使用entrySet()方法检索键值对的集合。然后它创建一个迭代器来遍历条目,并分别打印每个条目。输出显示LinkedHashMap的条目及其对应的键值。
算法
步骤1 - 创建一个名为“linkedHashMap”的LinkedHashMap对象。
步骤2 - 使用put()方法向linkedHashMap添加元素。
步骤3 - 使用entrySet()方法从linkedHashMap获取条目集,并将其存储在“entrySet”变量中。
步骤4 - 使用entrySet上的iterator()方法创建一个迭代器。
步骤5 - 使用while循环迭代LinkedHashMap条目。
步骤6 - 在循环中,使用hasNext()方法检查迭代器。
步骤7 - 如果还有更多条目,则使用next()方法检索下一个条目。
步骤8 - 打印输出。
示例
// Iterating over linkedHashMap by employing entrySet() and iterator import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Set; public class TLP { public static void main(String[] args){ // Create a LinkedHashMap and add elements to it LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>(); // incorporating the elements to the linkedHashMap linkedHashMap.put("Java", "is the first elemenent"); linkedHashMap.put("Python", "is the second element"); linkedHashMap.put("Ruby", "is the third element"); Set entrySet = linkedHashMap.entrySet(); // Obtain an Iterator for the entries Set Iterator it = entrySet.iterator(); // Iterate through LinkedHashMap entries System.out.println("LinkedHashMap entries -> "); while (it.hasNext()) // iterating over each element employing it.next() System.out.println(it.next()); } }
输出
LinkedHashMap entries -> Java=is the first elemenent Python=is the second element Ruby=is the third element
结论
在Java中迭代LinkedHashMap可以使用两种主要方法:
使用keySet()方法和get()方法,从中检索映射的键集并迭代它们以访问相应的值。
使用entrySet()方法和Iterator,这允许您按插入顺序遍历映射的条目。