gpt4 book ai didi

java - Java 通用树和通用节点

转载 作者:行者123 更新时间:2023-12-01 05:16:08 26 4
gpt4 key购买 nike

我想实现一个通用的 TreeNode 和通用树。我在stackoverflow和其他地方看过一些例子,但无法完全理解。

public interface Node<K, V>
{
K getId();
V getData();
K getParentId();
void addChild(Node<K, V> child);
List<Node<K, V>> getChildren();
}

public class Tree<K, V>
{
private Node<K, V> root;
public void loadData(Map<K, V> data)
{
// by figuring out the root node from map, populate tree
// root node is the one with parentId as null
// and the logic follows. Simple level order insertion
}
}

虽然上面的代码满足了我的目的,但我想了解是否有更好的方法来实现此目的。

就像将树声明为

public class Tree<T extends Node<?, ?> 
{
private T root;
public void loadData(Map<K, V> data)
{
// by figuring out the root node from map, populate tree
// root node is the one with parentId as null
// and the logic follows. Simple level order insertion
}
}

在上述情况下,我的数据加载方法应该驻留在哪里?一些 Util 类?

基本上,我想了解在创建泛型类而不是泛型类型时应遵循的原则。

谢谢。

最佳答案

如果您需要洞树类型泛型,这是我能想到的唯一选择:

    public class Tree<K extends Object, V extends Object, T extends Node<K, V>>
{
private T root;
public void loadData(Map<K, V> data)
{
// ...
}
}

我不确定我是否明白你的意思,从你的需求是什么这个问题来看并不清楚,所以如果这毫无意义或者不完全是你所需要的,请在投票之前告诉我(:

问候。

关于java - Java 通用树和通用节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11183945/

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