私はこれをJavaクラスの特別な練習として取り組んでいますが、なぜ私のaddメソッドが動作していないのかわかりません。私はデバッガを行単位でコードを歩いてみましたが、どこが間違っているのかわかりません。それは明らかに論理エラーです。 addメソッドをテストすると動作するように見えますが、ノードを正しくリンクしていないか、データを格納していないと思われます。LinkedListのメソッドを追加できません。
したがって、割り当てはリンクリスト(重複を追加しない)を書き込むことです。 NodeクラスをLinkedSetクラスの内部関数として実行しました。私たちの教科書は、この特定の課題についてそれを示唆しました。 これは私が使用している追加メソッドです。これは追加の検査方法であり、また
public class LinkedSet <T> implements SetInterface <T> {
private Node firstNode;
private int numberOfEntries;
public LinkedSet(){
firstNode = null;
numberOfEntries = 0;
}
public boolean add(T newEntry){
boolean result = false;
Node aNewNode = new Node (newEntry);
//If Node is currently null then add data to front
if(firstNode == null)
firstNode = aNewNode;
else
{
//Add newEntry if it's not already stored.
if(!contains(newEntry) && numberOfEntries != 0)
{
aNewNode.next = firstNode;
firstNode.next = aNewNode;
firstNode = aNewNode;
result = true;
}
else
result = false;
}
return result;
}//End add
public boolean contains(T anEntry){
boolean found = false;
while (!found && (firstNode != null))
{
if(anEntry.equals(firstNode.getData()))
found = true;
else
firstNode = firstNode.getNextNode();
}
return found;
}
private class Node {
private T data;
private Node next;
private Node (T theData){
data = theData;
next = null;
}
private Node(T theData, Node nextNode){
data = theData;
next = nextNode;
}
} //End Node class
}End LinkedSet
私ができるまで(別のテストアプリケーションを書きが必要と別のメインクラスで行われる)、ならびにいくつかの他の方法があり
private static boolean testAdd(SetInterface<String> aSet, String[] contentsToAdd){
boolean result = false;
for (int index = 0; index < contentsToAdd.length; index++)
{
aSet.add(contentsToAdd[index]);
result = true;
}
return result;
}//End testAdd
しかしaddメソッドを動作させてください。私はそれらのメソッドをあまり使うことができませんので、どこかに問題があると確信しています。 私は同様の質問でネットを見回しましたが、まだどこにいるのかわかりません。どんな助けにも感謝しています。
firstNode = firstNode.getNextNode()というを変更しないでくださいfirstNodeの参照を変更しています。 –