如何/可以在Java中使用Hashmap为每个循环编写一个?

Jos*_* C. 2 java foreach for-loop hashmap

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

Library.java:12:错误:for-each不适用于表达式类型for(String book:library){^必需:数组或java.lang.Iterable找到: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);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

ern*_*t_k 5

您可以遍历一组条目:

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

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