java - 我如何/可以在 Java 中使用 Hashmap 编写 for each 循环?

标签 java for-loop foreach hashmap

我需要在我的方法中迭代 HashMap 的每个值,但它在 for each 循环中给我一个语法错误

Library.java:12: error: for-each not applicable to expression type for(String book : library){ ^ required: array or java.lang.Iterable found: HashMap

这是相关代码

public void getFinishedBooks(HashMap<String, Boolean> library)
{
  if(library.size()<1) 
  {
    System.out.println("Library is empty!");
  }
  else 
  {
    for(String book : library)
    {
      if(library.get(book) ==true)
      {
        System.out.println(book);
      }
    }
  }
}

最佳答案

您可以遍历条目集:

for (Entry<String, Boolean> book : library.entrySet()) {
    if (book.getValue()) {
        System.out.println(book.getKey());
    }
}

Map.entrySet() 返回条目的 Set (java.util.Map.Entry)。每个条目都包含一对键及其值。

关于java - 我如何/可以在 Java 中使用 Hashmap 编写 for each 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720164/

相关文章:

java - 断点未在 maven 多模块 Web 应用程序的 eclipse 中注册

c - 具有 NULL 条件的 for 循环,为什么 printf();执行?

php - 如何在 foreach 循环中创建数组?

javascript - 如何 forEach where (angular.js)

java - JNI 从一个类的两个 DLL 中读取

java - 使用Java在mongodb中查找祖先

java - 为什么 Mockito 的 mock 在应该返回 null 时返回 0?

c++ - `auto && e` 在基于范围的 for 循环中做了什么?

r - 使用 for 和 if 根据数据框中的其他列添加列值

c# - 减少代码C#中的多个foreach循环