Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以用Java创建对象树吗?_Java_Tree - Fatal编程技术网

可以用Java创建对象树吗?

可以用Java创建对象树吗?,java,tree,Java,Tree,我试图用Java创建一个对象树。我还想使用一个Java类,它可以轻松地从树中添加或删除节点。出于这个目的,最好使用什么类 "world" /\ 0 1 / \ /\ 0 1 0 1 示例:这是一个对象数组。数组顶部的对象是字符串“world”。这里的叶子是整数,我想把字符串“This is at(world,0,0)!”添加为叶子at(world,0,0)”。哪种Java类最适合这个目的 "world" /\ 0 1 / \ /\ 0 1 0 1 做你自己的。这很容易

我试图用Java创建一个对象树。我还想使用一个Java类,它可以轻松地从树中添加或删除节点。出于这个目的,最好使用什么类

"world"
  /\
 0  1
/ \  /\
0 1  0 1
示例:这是一个对象数组。数组顶部的对象是字符串“world”。这里的叶子是整数,我想把字符串“This is at(world,0,0)!”添加为叶子at(world,0,0)”。哪种Java类最适合这个目的

"world"
  /\
 0  1
/ \  /\
0 1  0 1

做你自己的。这很容易。超级简单:

public class Tree{
    public Node root;
}

public class Node{
    public ArrayList<Node> children;
    public Node parent;
    public String value;
}

你会在控制台中听到“嗨”的声音。

这听起来有点像家庭作业。它是?如果是这样的话,通常最好是直言不讳

Java中并没有真正的数据结构可以满足您的需要,因为您似乎对直接树操作感兴趣。Java集合更多地是关于提供的抽象数据类型(列表、集合、映射),而不是支持实现的细节;针对不同的性能特征提供了不同的实现


总之,你最好还是自己写。除非您真正关心的是从一个键到一个值的映射,否则任何映射实现都会做得很好。

您将叶子描述为整数,但叶子是字符串“(world,0,0)”。它应该是一个还是另一个?@oconnor0我正在尝试创建一个对象树(可以是任何类型)。在Java中实现这一点是可能的,不是吗?当然。只需使用
对象
而不是特定类型。我不确定您是否需要更具体的值。这些值有时是String,有时是int。但问题并不是很清楚……最棒的是,它很容易改变成你需要的样子。我喜欢能够编写自己的东西,而不必为所有东西寻找库。如果需要存储不同类型的对象,可以始终使用值类型对象而不是字符串,或者可以使用泛型类树{public Node root;}类节点{public ArrayList>();public Node parent;public T value;}我仍然需要了解如何像这样在树中添加和删除节点。@Andy您应该更准确地描述您要做的事情。你怎么能搜索和排序这样一个数字和字符串混合的树呢;这是我为游戏创建的分形生成器的一部分。我希望分形由树数据结构表示,因为使用嵌套数组太麻烦了。我基本上希望树像一个具有无限维的数组一样工作,并且我希望为树创建“getter”和“setter”方法。因此,如果执行了add语句(“Hi!”,0),那么get(0)应该返回字符串“Hi!”。然后,语句集(1,0,0)将添加整数1作为节点(0)的第0个叶。
Tree myTree = new Tree();
myTree.root = new Node();
int[] path = {0, 0, 0};
myTree.put("hi", path);
System.out.println(myTree.get(path));