How can I iterate over a map of ?

前端 未结 2 1181
夕颜
夕颜 2020-11-29 13:58

I\'ve got a Map (actually I\'m using a more complex POJO but simplifying it for the sake of my question)

Person looks

相关标签:
2条回答
  • 2020-11-29 14:33

    What about 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());
    
    }
    
    0 讨论(0)
  • 2020-11-29 14:33

    You can use:

    • Map.entrySet() (as mentioned by org.life.java) or,
    • Map.keySet() as in this example (based on your sampled code)

    Example:

    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));
    
        }
    }
    
    0 讨论(0)
提交回复
热议问题