Arrays in Vectoren speichern - Aber keine Referenz

Ich versuche in einen Vector StringArrays zu speichern.
Dann lese ich aus dem Vector die Arrays nach und nach in ein von mir temp. angelegtes Array. Aber irgendwie befindet sich in mein
Vector wohl nur ein „Arrayobject“. D.H. die Referenz von einem
Array wird überall gespeichert. Das will ich aber nicht.
Was muß ich machen?? (Habe auch versucht immer mit new ein neues ArrayObj zu erzeugen, klappte auch irgendwie nicht!).
Den kleinen Code habe ich unten mit Ausgabe eingefügt!

Code

_public static void main (String[] args){

String saAttribute[] =new String[2];
String saTmpAttribute[] =new String[2];

Vector vecDynPart = new Vector();

saAttribute[0] = „Hallo1_1“;
saAttribute[1] = „Hallo1_2“;
vecDynPart.add(saAttribute);
for(int i=0; isaTmpAttribute = (String[]) vecDynPart.elementAt(j);

for(int i=0; i

Ausgabe:

Array[0] = Hallo1_1
Array[1] = Hallo1_2

Array[0] = Hallo2_1
Array[1] = Hallo2_2

VectorArray[0] = Hallo2_1
VectorArray[1] = Hallo2_2

VectorArray[0] = Hallo2_1
VectorArray[1] = Hallo2_2_

Vector wohl nur ein „Arrayobject“. D.H. die Referenz von einem
Array wird überall gespeichert.

Du kannst mit System.arraycopy( Object src, int src_position, Object dst, int dst_position, int length ) eine Kopie des Arrays anlegen und die dann in den Vector stecken.

Grüße, Robert

Hi!

Man kann auch mit array.clone() eine Kopie eines Array anlegen, aber so ganz versteh ich dein Problem nicht?!?!?

Du hast eine verschachtelte Schleife und von daher ist der Ausdruck doch völlig logisch?!?

Bernd

Vector wohl nur ein „Arrayobject“. D.H. die Referenz von einem
Array wird überall gespeichert.

JEP, Problem erkannt!

public static void main (String[] args){

String saAttribute[] =new String[2];
String saTmpAttribute[] =new String[2];

Vector vecDynPart = new Vector();

saAttribute[0] = „Hallo1_1“;
saAttribute[1] = „Hallo1_2“;
vecDynPart.add(saAttribute);
for(int i=0; isaTmpAttribute = (String[]) vecDynPart.elementAt(j);

for(int i=0; i

Code

_public static void main (String[] args){

String saAttribute[] =new String[2];
String saTmpAttribute[] =new String[2];

Vector vecDynPart = new Vector();

saAttribute[0] = „Hallo1_1“;
saAttribute[1] = „Hallo1_2“;
vecDynPart.add(saAttribute);
for(int i=0; i>>>> saAttribute = new String[2];_

saAttribute[0] = „Hallo2_1“;
saAttribute[1] = „Hallo2_2“;
vecDynPart.add(saAttribute);
for(int i=0; isaTmpAttribute = (String[]) vecDynPart.elementAt(j);

for(int i=0; i

Hi,

eigentlich sollte es ausreichen, Deinem Code die Zeile, die
oben mit „>>>>>“ gekennzeichnet worden ist, hinzuzufügen.

Lydia