java - 遍历继承列表

标签 java algorithm tree rank

对于游戏,我们有一个等级列表,例如默认、mod、jrmod、admin 等。每个等级都存储在数据库中,并包含一些信息,如它继承的信息及其权限。每个等级也可以继承另一个等级,例如admin继承srmod,srmod继承mod,jrmod继承jrmod,srmod继承default。这允许在不重复数据的情况下堆叠权限。

问题是,当前加载等级时,会设置用户等级,然后继承并加载该等级,然后再继承这些等级。然而,这意味着权限继承仅深入 2 层。对于我们上面的例子,admin继承了srmod,srmod又继承了mod。然后就停止了。

我不知道可以使用哪种算法来沿着继承线走下去并加载这些权限。这段代码是Java语言,每个等级可以有多个继承,例如jrmod继承默认等级和领主等级。

最佳答案

您只需要在 while 循环中检查该等级是否有继承,并且只要它有一个获得该等级的权限,然后再次检查......

List<String> permissions = new 
Rank rank = getRank(player);
while (rank.hasInheritance()) {
  rank = rank.getInheritance();
  permissions.addAll(rank.getPermissions());
}

关于java - 遍历继承列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59588561/

相关文章:

java - AWSParameterStore获取所有键和值

python - 在递归中使用 yield 平衡内存和性能

algorithm - 查找图形的集团覆盖

algorithm - Dijkstra 与迭代。如何对图建模并确定两种情况下的时间复杂度?

javascript - 从树结构中抓取所有 "names"

java - 当我使用 Ant 构建具有多个库的 Android 项目时,我的构建失败

java - 按值排序的 TreeMap 不起作用?

java - Apache Karaf 蓝图服务 <reference> 未注入(inject)对象

algorithm - 无限深度和无限广度玫瑰树懒折叠到它的边缘路径

C - 删除n叉树节点