2
ジェネリックスタックをJavaで作成するプログラミング割り当てがあり、newNode Tのディープコピーを作成する必要があります。メソッドを深くする方法がわかりません。私はディープコピーを出力します。これまでのところ、私はこれを持っています:ディープコピーJavaのジェネリック
public class Stack<T>
{
private T[] data;
private int top;
private int size;
public Stack()
{ top = -1;
size = 100;
data = (T[])new Object[100];
}
public Stack(int n)
{ top = -1;
size = n;
data = (T[])new Object[n];
}
public boolean push(T newNode)
{ if(top == size-1)
return false; // ** overflow error **
else
{ top = top +1;
data[top] = newNode.deepCopy();
return true; // push operation successful
}
}
public T pop()
{ int topLocation;
if(top == -1)
return null; // ** underflow error **
else
{ topLocation = top;
top = top -1;
return data[topLocation];
}
}
public void showAll()
{ for(int i = top; i >= 0; i--)
System.out.println(data[i].toString());
}
}
私はnewNodeのディープコピーを作ることができます。私はメソッドのインターフェースが必要だと確信していますが、私は失われてしまっています。
はSOへようこそ。参照:http://stackoverflow.com/questions/64036/how-do-you-make-a-deep-copy-of-an-object-in-java 'T'に関する追加情報はありますか? 'clonable'インターフェースを実装していますか? – c0der
@ c0der: 'Cloneable'を実装するかどうかは関係ありません。 'Cloneable'は公的なクローニング方法を提供しません。それは別の目的を果たします。 – newacct