Java中嵌套集合的DFS

时间:2013-07-22 10:40:40

标签: java collections depth-first-search

我有一张如下地图

com1 -> [user1, 100, [com2,com3]]
com2 -> [user3, 100, []]
com3 -> [user2, 100, [com4]]
com4 -> [user1, 100, [com5]]
com5 -> [user2, 100, []]  

这里每个条目引用一个注释,每个列表的索引2是该映射条目的子注释列表。如何直接和间接删除与com1相关的所有注释?

1 个答案:

答案 0 :(得分:1)

以下是使用DFS删除此类评论的示例

public deleteEntry(String entry) {
    if (map.containsKey(entry)) {
        Comment comment = map.get(entry);
        map.remove(entry);
        if (comment.getChildren() != null) {
            for(int i = 0; i < comment.getChildren().size(); i++) {
                deleteEntry(comment.getChildren().get(i));
            }
        }
    }
}