gpt4 book ai didi

java - 我的数组中的链接列表不起作用

转载 作者:行者123 更新时间:2023-12-01 16:47:23 25 4
gpt4 key购买 nike

我正在尝试创建一个程序来将单词存储在数组中。我有一个计算整数值的 hashFunction。如果数组中的该位置为空,则使用该值将单词放入节点中。如果那里已经有一个 Cell,它应该创建一个以单词作为其数据类型的新 Cell,然后它应该指向具有所有其他数据的旧 Cell。然而,这似乎不起作用 - 我添加了一些单词,虽然它将第一个单词添加到单元格中,但其他单词没有添加。我不确定为什么会发生这种情况 - 有人可以告诉我为什么吗?

public class test2{

public static class Node<T>{
public T data;
public Node<T> next;

public Node(T data, Node<T> next)
{
this.data = data;
this.next = next;
}
}



static Node[] array = new Node[10];

public static void add(String word){
int position = hashFunction(word);
if(array[position] == null){
array[position] = new Node(word, null);
}else{
new Node(word, array[position]);
}
}

public static int hashFunction(String a){
int sum = 1;
for(int i = 0; i<a.length(); i++){
char b = a.charAt(i);
int value = (int) b;
sum *= value;
}
return sum % array.length;
}

public static void main(String[] args) {
add("abc");
add("acb");
add("bca");
add("bac");
add("cba");
System.out.println(array[4].next);
}
}

最佳答案

而不是

new Node(word, array[position])

您应该执行以下操作:

array[position] = new Node(word, array[position]);

使用原始代码行,您可以正确创建 Node 的新实例,并将当前的 array[position] 指定为其 next值。

但是array[position]还是一样,需要将其更改为新创建的Node实例。

关于java - 我的数组中的链接列表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680570/

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