【问题标题】:Loop through a hashmap using entrySet使用 entrySet 循环遍历 hashmap
【发布时间】:2018-04-08 04:41:08
【问题描述】:

我在另一个文件中的自己的类中有一个 hashMap。

public class className {

private HashMap<String,String> myMap = new HashMap<String,String>();

}

如果我将值传递给它,我想遍历 hashMap 并获取键。我在阅读以下问题时遇到了 entrySet 问题。 Stackoverflow Question

我的 for each 循环代码是:

for(Map.Entry<String, String> entry : className.entrySet()){


}

className 是包含我的 hashMap 的类的名称,我收到错误:

找不到符号

我猜这与没有 entrySet 方法有关,但我不确定,因为我上面链接的问题没有提到这一点。

谁能给点建议?

【问题讨论】:

  • 您应该从包含HashMap 的类中获取entrySet,还是从HashMap 本身获取?
  • 如果你的class car的对象c有Engine,可以直接调用c对象中engine的方法吗???

标签: java hashmap


【解决方案1】:

如果myMap 在另一个class 上,并且它是private,那么您需要一个public getter method,如下所示。

    public class className {

    private HashMap<String,String> myMap = new HashMap<String,String>();

    public Map getMyMap()
    {
       return myMap;
    }

}




for(Map.Entry<String, String> entry : objectOfClassName.getMyMap().entrySet()){


}

【讨论】:

    【解决方案2】:

    您需要输入 Hashmap 的名称。不是类名

    for(Map.Entry<String, String> entry : myMap.entrySet()){
    
    
    }
    

    【讨论】:

    • 抱歉编辑了我的问题 - 它在不同的文件中,并且 hashMap 是私有的
    • @Silentbob 那么你需要为那个 hashMap 创建一个 getter 方法
    • @Silentbob 在这种情况下你需要一个public getter method 来代表myap
    【解决方案3】:

    您应该遍历您的 myMap 条目集:

    for(Map.Entry<String, String> entry : myMap.entrySet()){
      // do something with the entry
    }
    

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 1970-01-01
      • 2019-07-28
      • 2018-10-15
      • 2011-10-08
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      相关资源
      最近更新 更多