我已经创建了一个HashMaps的ArrayList,我知道如何获取列表中所有HashMaps的所有键和值,但后来我决定让它变得复杂并迭代通过ArrayList并获得特定的HashMap值(基于键) )。我不知道该怎么做。
如何修改constructor(p1 = 'Default Variable',p2 = 'Default Variable',p3 = 'Default Variable',p4 = 'Default Variable')
方法以仅从所有哈希映射中获取printArrayList
和id
值?
现在我有以下示例:
sku
答案 0 :(得分:1)
您对arrayList的迭代器是正确的。要从地图中检索值,只需将密钥提供给条目的“get”函数即可。由于您的地图具有“对象”值的“字符串”键,因此您可以在其上使用“toString()”从您的密钥返回的对象中获取字符串。
public static void printArrayList(ArrayList<Map<String, Object>> arrayList) {
for (Map<String, Object> entry : arrayList) {
String myID = entry.get("id").toString();
String mySKU = entry.get("sku").toString();
System.out.print("id:" + myID + " sku: " + mySKU);
System.out.println("-------------------");
}
}
答案 1 :(得分:0)
user681574似乎已经回答了你的问题,但我只是添加一个Java8示例代码,根据需要做同样的事情,使用流
public static void printArrayList(ArrayList<Map<String, Object>> arrayList) {
arrayList.stream() //stream out of arraylist
.forEach(map -> map.entrySet().stream() //iterate through each map in the list, create stream out of maps' entryset
.filter(entry -> entry.getKey().equals("id") || entry.getKey().equals("sku")) //filter out only entries that we need (where key is "id" or "sku")
.forEach(idOrSku -> System.out.println(idOrSku.getKey() + ":" + idOrSku.getValue()))); //Iterate through the id/sku entries and print them out just as we want to
}