0

我尝试了以下代码

package collectconstructor;
import java.util.Iterator;  
import java.util.Map;  
import java.util.Set;  

public class QuestionMap {

private int id;  
private String name;  
private Map<String,String> answers;  


public QuestionMap(int id, String name, Map<String, String> answers) {  
    super();  
    this.id = id;  
    this.name = name;  
    this.answers = answers;  
}  

public void displayInfo(){  
    System.out.println("question id:"+id);  
    System.out.println("question name:"+name);  
    System.out.println("Answers....");  
    Set<Entry<String, String>> set=answers.entrySet();  
    Iterator<Entry<String, String>> itr=set.iterator();  
    while(itr.hasNext()){  
        Entry entry= itr.next();  
        System.out.println("Answer:"+entry.getKey()+" Posted By:"+entry.getValue());  
    }  
}  

}

在下面的代码片段中

 Set<Entry<String, String>> set=answers.entrySet();  
 Iterator<Entry<String, String>> itr=set.iterator(); 

我得到的错误是

此行有多个标记

  • Map 类型的方法 entrySet() 引用了缺少的类型 Map$Entry

  • 条目无法解析为类型

任何人都可以解释为什么我会收到这个错误吗?

我也尝试导入

import java.util.Map.Entry;

但有同样的错误..请帮忙!!

4

1 回答 1

0

尝试这个:

Set<Map.Entry<String, String>> set = answers.entrySet();  
Iterator<Map.Entry<String, String>> itr = set.iterator();  

Map.Entry是Map的子界面。所以我们将通过Map.Entry名称访问它。它提供了获取键和值的方法。

于 2018-05-18T06:43:22.457 回答