学习Java并且已经弄清楚如何在数组中存储hashmap。但我无法弄清楚如何获取存储的数据。这是我正在做的简化版本。我已经显示了特定的数组项,但是如何访问存储在数组中的哈希映射?
import java.util.*;
public class HelloWorld {
public static void main(String[] args) {
Map<String, String> custOrder = new HashMap<String, String>();
List ordersPlaced = new ArrayList();
custOrder.put("colour", "blue");
custOrder.put("manu", "bmw");
custOrder.put("body", "4x4");
ordersPlaced.add(custOrder);
custOrder = new HashMap();
custOrder.put("colour", "green");
custOrder.put("manu", "merc");
custOrder.put("body", "saloon");
ordersPlaced.add(custOrder);
System.out.println(ordersPlaced.get(0).toString());
}
}
希望这是有道理的。提前致谢
尼尔
答案 0 :(得分:4)
您已经在访问它了。
为了获得地图项目的迭代,您可以:
ordersPlaced.get(0).forEach((key, value) -> {
System.out.println("Key is: " + key + ", Value is: " + value);
});
或者,早于Java 8,类似于:
for (Map.Entry<String, String> entry : ordersPlaced.get(0).entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
}
请注意,您应该避免使用原始类型列表。相反,你应该:
List<Map<String, String>> ordersPlaced = new ArrayList<>();
然后:
Map<String, String> m = ordersPlaced.get(0);
答案 1 :(得分:3)
你已经知道了。
您可以通过编写
来取回存储的地图Map<String, String> placedCustOrder = ordersPlaced.get(0);
使用List时避免使用原始类型。将您的列表声明为
List<Map<String, String>> ordersPlaced = new ArrayList<>();
我想知道如何访问位于0的数组中存储的数据的颜色
因为你按照我在第1行所说的那样得到了地图
Map<String, String> placedCustOrder = ordersPlaced.get(0);
String colorVal = placedCustOrder.get("colour");
我强烈建议您在继续进行之前查看Map
文档。