我需要帮助尝试使用对象迭代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
也可以用钥匙打电话给每个人。
提前致谢。
答案 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())
);
的教程
对于溪流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);
}
}