一个对象如何指向 JAVA 中的许多其他对象?
how can an objects points on many other objects in JAVA?
我正在尝试构建一个 TRIE,但为此我需要树的根能够指向我想要创建的儿子(因为它应该用作前缀树)。
所以我想知道是否有可能将我的根对象中的许多指针指向我轮胎的所有子对象?
我想看看具体如何。
Java 不使用术语 pointers
。它使用术语 references
。虽然引用在传递给方法时表现出指针的某些行为,例如 pass-by-value
,但它们仍被称为 references
.
继续讨论实际问题。您可以使用 Collection
个参考文献。考虑以下示例:
class Node {
List<Node> children = new ArrayList<Node>();
public void addNode(Node d) {
children.add(d);
}
/*Get Nth child */
public Node getChild(int n) {
if(n<children.size())
return children.get(n);
return null;
}
}
您也可以使用 LinkedList
代替 ArrayList
,具体取决于您希望实现的目标。 LinkedList
将提供快速插入和删除,而 ArrayList
将提供快速迭代。
要实现 trie,您需要一种将字母转换为对下一个节点的引用的方法。有 2 个明显的选择:
- 数组
Node[] nodes = new Node[26];
(假设是英语)
- 一个
Map<Character, Node> map = new HashMap<Character, Node>();
数组是经典的 C 方法,但由于您在 java 中工作,我会从地图开始,因为它更容易使用。
我正在尝试构建一个 TRIE,但为此我需要树的根能够指向我想要创建的儿子(因为它应该用作前缀树)。
所以我想知道是否有可能将我的根对象中的许多指针指向我轮胎的所有子对象? 我想看看具体如何。
Java 不使用术语 pointers
。它使用术语 references
。虽然引用在传递给方法时表现出指针的某些行为,例如 pass-by-value
,但它们仍被称为 references
.
继续讨论实际问题。您可以使用 Collection
个参考文献。考虑以下示例:
class Node {
List<Node> children = new ArrayList<Node>();
public void addNode(Node d) {
children.add(d);
}
/*Get Nth child */
public Node getChild(int n) {
if(n<children.size())
return children.get(n);
return null;
}
}
您也可以使用 LinkedList
代替 ArrayList
,具体取决于您希望实现的目标。 LinkedList
将提供快速插入和删除,而 ArrayList
将提供快速迭代。
要实现 trie,您需要一种将字母转换为对下一个节点的引用的方法。有 2 个明显的选择:
- 数组
Node[] nodes = new Node[26];
(假设是英语) - 一个
Map<Character, Node> map = new HashMap<Character, Node>();
数组是经典的 C 方法,但由于您在 java 中工作,我会从地图开始,因为它更容易使用。