これらの行を使用する場合:
vector.set(i, copyedVector.clone());
vector holds Vector<String>
copyVector holds strings
クローンを使用するとエラーが発生します。しかし、クローンを削除すると、正常に動作します。ベクトルのコピーを他のベクトルに作成するにはどうすればよいですか?
他の人が指摘しているように、「ベクトル」変数がベクトルのベクトル ( Vector<Vector<String>>
) なのか、単に文字列のベクトル ( ) なのかは明確ではありませんVector<String>
。次のコード スニペットを参照してください。
Vector<String> destVector = new Vector<String>();
Vector<String> sourceVector = new Vector<String>();
sourceVector.add("A");
sourceVector.add("B");
sourceVector.add("C");
destVector.addAll(0,sourceVector);
// If your target vector is a vector of vectors (of strings)
Vector<Vector<String>> destVector2 = new Vector<Vector<String>>();
destVector2.set(0,(Vector<String>)sourceVector.clone());
clone
また、このメソッドは を返すことに注意してくださいObject
。したがって、目的のデータ型に明示的にキャストする必要があります。
これがまさにあなたが求めているものかどうかはわかりませんが、すべての要素をコピーしたい場合は、 addAll メソッドを使用してベクターを渡して要素をコピーすることができます:
http://docs.oracle.com/javase/6/docs/api/java/util/Vector.html#addAll(java.util.Collection)
これを試して。自分でベクターにデータを追加します。
Vector<T> vector1 = new Vector<T>();
Vector<T> vector2 = new Vector<T>();
vector1.addAll(vector2);
これを試して、
vector.set(i, new Vector().addAll(copyedVector));