在Hashmap中迭代对象

时间:2015-10-20 17:26:07

标签: java android

我需要帮助尝试使用对象迭代Hashmap。我真的被困在如何做到这一点。我尝试检查像How to iterate through objects in Hashmap这样的链接,但仍然无法完全按照我想要的方式实现它。

        List<Object> firstObject = new ArrayList<Object>();
        HashMap<Integer, Object> mapEx = new HashMap<> ();

        /* Put the data to Map*/

        mapEx.put(1, "First");       // String
        mapEx.put(2, 12.01);         // float
        mapEx.put(3, 12345);         // int
        mapEx.put(4, 600851475143L); // Long

        /* add map to firstObject */
        firstObject.add(mapEx);

        HashMap<String, Object> secondMap = new HashMap<> ();
        secondMap.put("mapEx", firstObject);

        Log.d("mapEx: ",secondMap.get("mapEx").toString()); 
        //When i print the line, this is the result below

        D/mapEx:﹕ [{4=600851475143, 1=First, 3=12345, 2=12.01}]

但我怎么能实际迭代它们呢?以这种方式出来。

4=600851475143
1=First
3=12345
2=12.01

也可以用钥匙打电话给每个人。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您链接的示例确实回答了问题。这就像你的情况一样:

for (Map.Entry<Integer, Object> entry : mapEx.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
}

还有带流的java 8解决方案

mapEx.entrySet().stream().forEach(e ->
    System.out.println(e.getKey() + "=" + e.getValue())
);

有关HashMaps herehere

的教程

对于溪流here

答案 1 :(得分:0)

像这样:

for (HashMap<Object, Object> map : firstObject) {
    for (Object key : map.keySet()) {
        Object value = map.get(key);

        System.out.println("key = " + key + " value = " +  value);
    }
}