在A类中,我想要遍历B类中HashMap的keySet

时间:2015-10-30 12:09:24

标签: java methods hashmap keyset

我想从另一个类中查看HashMap的keySet中的每个键。 现在这就是我所拥有的:

Admin.java

import java.util.HashMap

public class Admin {
public static HashMap<String, Person> person = new HashMap<String, Person>();

    public static void main (String [] args) {
         for (String key: person.get("James").getHashMap().keySet()) {
         System.out.println(key);
    }

}

Person.java

import java.util.HashMap

public class Person {
public static HashMap<String, Book> book = new HashMap<String, Book>();
private static String title = "";


    public Book (String titleIn) {
         title = titleIn;
    }

    public HashMap getHashMap(){
         return book;
    }


}

我想我不能这样做,因为我无法在HashMap上使用HashMap命令,而HashMap没有存储在同一个类中。

我可以使用其他方法吗?我是从Admin.java那里搞错了吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

由于它是静态的和公共的,因此您可以从项目的任何位置使用它。只需写下

Admin.person

前者

public class Person {

...
....
        public void print() {
         for (String key: Admin.person.get("James").getHashMap().keySet()) {
                 System.out.println(key);
            }

        }
   }

答案 1 :(得分:0)

您的getDataFactory.callWebApi('someDataToPass'));方法会在getHashMap课程中返回原始HashMap

原始地图未进行参数化,因此其键的类型为Person隐式。

您需要将其更改为:

Object

...以便能够将密钥引用为public Map<String, Book> getHashMap(){ return book; }

修改

您还需要将String变量更改为实例(而不是book),或使static方法保持静态。

后者可能被建议不要使用,因为它会为所有getHashMap个实例返回相同的对象。