如何从entry.getValue获取另一个HasMap?



From 对于每个循环,在 entry.getValue(( 中,还有另一个来自 firestore 的地图。我怎样才能得到?

法典:

@Override
public void onComplete (@NonNull Task < QuerySnapshot > task) {
if (task.isSuccessful()) {
//   binding.contentMain.noData.setVisibility(View.GONE);
for (QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
showLog("Data: " + document.getData());
postMap.putAll(document.getData());
}
try {
for (Map.Entry<String, Object> entry : postMap.entrySet()) {
if (entry.getKey().equals(CONTENT)) {
showLog("value: " + entry.getValue().toString());

contentMap = new HashMap<>();
contentMap.putAll(entry.getValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
//  binding.contentMain.noData.setVisibility(View.VISIBLE);
showLog("Error getting documents: " + task.getException());
}
}

我像下面一样尝试,但编译器错误。无支撑:

Map map = new HashMap();
((Map)map.get( "keyname" )).get( "nestedkeyname" );

试试这个

contentMap.putAll((Map<? extends String, ? extends Object>) entry.getValue());

使用你的变量命名,试试这个

entry.iterator().next()

所以如果你有哈希图A:

{"key1":"value1",
"key2":"value2",
"key3":"value3"}

给定这个哈希图"入口集"的条目集,你可以做

entrySet.iterator().next()

如果在 while 循环中使用,可以遍历哈希图中的所有键和值

最新更新