如何在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,这允许您按插入顺序遍历映射的条目。

更新于:2023年10月19日

2K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告