3D HashMap java获取条目

时间:2018-05-12 20:17:11

标签: java firebase

我目前正在尝试构建自己的弹性搜索(具有更少的功能和经验)来过滤我的firebase数据库,我不使用elasticsearch也不使用Algolia,因为我想自己做所有。

现在我想出了这个方法:

1)从firebase中的子节点获取所有关键字 2)将它们添加到3D HashMap

现在它按照我想要的方式安排我的数据:

Map<String, Map<String, Map<String, String>>> map = new HashMap<>();

例:"Restaurants" { "Some restaurant Name" { "keywords": "Some,keywords,here" }

我现在要做的就是打印所有值,以便进一步了解我的代码。

以下是我正在尝试打印的方式:

for (Map.Entry<String, Map<String, Map<String, String>>> entry : map.entrySet()) {
                    Log.w("MAP =====> ", entry.getKey() + ": " + entry.getValue());
                    for (Map.Entry<String, Map<String, String>> entry1 : map.get(entry.getKey()).entrySet()) {
                        Log.w("MAP2 =====> ", entry1.getKey() + ": " + entry1.getValue());
                        for (Map.Entry<String, String> entry2 : map.get(entry.getKey()).get(entry1.getKey()).entrySet()) {
                            Log.w("MAP3 =====> ", entry2.getKey() + ": " + entry2.getValue());
                        }
                    }
                }

我似乎无法超越第一个循环......

这是我的日志:

W/MAP =====>: Restaurants: {} 
W/MAP =====>: Hikes: {}
W/MAP =====>: Sports: {}

正如您所看到的,“MAP2”和“MAP3”的日志未显示,我如何迭代所有?

提前致谢, 美好的一天/傍晚/晚上!

PS:我知道firebase查询存在,我不想使用.startAt().endAt()等。

0 个答案:

没有答案