簡體   English   中英

我如何在地圖上進行迭代 <String, POJO> ?

[英]How can I iterate over a map of <String, POJO>?

我有一個Map<String, Person> (實際上,我在使用一個更復雜的POJO,但是為了我的問題而簡化了它)

Person的樣子:

class Person
{
  String name;
  Integer age;

  //accessors
}

我如何遍歷此地圖,打印出密鑰,然后打印人名,然后打印人年齡,例如:

System.out.println(String.format("Key : %s Name : %s Age : %s", a, b, c));
  • A是Map < String ,Person>的鍵
  • B是Person.getName()的名稱
  • C是Person.getAge()的年齡

我可以使用HashMap文檔中詳細介紹的.values()從地圖中提取所有值,但是我不確定如何獲取鍵

那么entrySet()

HashMap<String, Person> hm = new HashMap<String, Person>();

hm.put("A", new Person("p1"));
hm.put("B", new Person("p2"));
hm.put("C", new Person("p3"));
hm.put("D", new Person("p4"));
hm.put("E", new Person("p5"));

Set<Map.Entry<String, Person>> set = hm.entrySet();

for (Map.Entry<String, Person> me : set) {
  System.out.println("Key :"+me.getKey() +" Name : "+ me.getValue().getName()+"Age :"+me.getValue().getAge());

}

您可以使用:

例:

Map<String, Person> personMap = ..... //assuming it's not null
Iterator<String> strIter = personMap.keySet().iterator();
synchronized (strIter) {
    while (strIter.hasNext()) {
        String key = strIter.next();
        Person person = personMap.get(key);

        String a = key;
        String b = person.getName();
        String c = person.getAge().toString();
        System.out.println(String.format("Key : %s Name : %s Age : %s", a, b, c));

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM