gpt4 book ai didi

java - java中迭代hashmap列表

转载 作者:行者123 更新时间:2023-12-01 07:34:14 25 4
gpt4 key购买 nike

我在 hashmap 中有一个 hashmap,例如

List<Map> mapList = new ArrayList<Map>();
for (int i = 0; i < 2; i++) {
Map iMap = new HashMap();
iMap.put("Comment", "");
iMap.put("Start", "0");
iMap.put("Max", "0");
iMap.put("Min", "0");
iMap.put("Price", "5000.00");
iMap.put("DetailsID", "51");
mapList.add(iMap);
}

Map mMap = new HashMap();
mMap.put("ID", "27");
mMap.put("ParticipantID", "2");
mMap.put("ItemDetails", mapList);

我想迭代这个 map 并为此放入 JSONObject

try {

JSONObject object = new JSONObject();

Iterator iterator = mMap.entrySet().iterator();

while (iterator.hasNext()) {
Map.Entry mEntry = (Map.Entry) iterator.next();
String key = mEntry.getKey().toString();
String value = mEntry.getValue().toString();
object.put(key, value);

}

Log.v(TAG, "Object : " + object);

响应如下

Object : {"ItemDetails":"[{Price=5000.00, Comment=, DetailsID=51, Min=0, Max=0, StartViolation=0}, {Price=5000.00, Comment=, DetailsID=51, Min=0, Max=0, StartViolation=0}]","ID":"27","ParticipantID":"2"}

hashmap 的内部列表没有迭代

最佳答案

the inner list of hashmap is not iterating

确实如此。您还没有编写任何代码来迭代它。当您获取 ItemDetails 条目时,您将拥有一个 "ItemDetails" 键和一个列表值。接下来就是您要对它们执行的操作:

String key = mEntry.getKey().toString();            
String value = mEntry.getValue().toString();

所以您只是在列表上调用toString()。你需要弄清楚你真正想做什么。例如,您可能想要:

if (mEntry.getValue() instanceof List) {
// Handle lists here, possibly recursively
}

请注意,您可能想要递归到每个Map。同样,您需要编写代码来执行此操作。基本上,您不能假设 toString() 会执行您需要的操作,而这是您目前所做的假设。

关于java - java中迭代hashmap列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14156580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com