配列に単語を格納するプログラムを作成しようとしています。私はInteger値を計算するhashFunctionを持っています。この値は、配列内のその位置がnullの場合、ノードにWordを配置するために使用されます。既にそこに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);
}
}
} else { 新しいノード(単語、配列[位置]); } この新しいノードはどこにも格納されていません –
配列[位置]がnullでない場合、新しいノードはどこに挿入されるべきですか? –