webForumDet fria alternativet

Utöka array

4 svar · 532 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19995 875 inlägg
#1

Hej!

Om jag har

int arrWee[] = new int[4];

Så kanske jag fyller arrWee med värden, och kommer sedan på att den måste utökas till

int arrWee[] = new int[6];

Alltså utrymmet på en befinlig array skall ökas på med två, utan att de befintliga värderna i arrayen försvinner. (Arrayen skall alltså behålla sitt gamla namn)

Hur skall jag göra?

ViktorMedlem sedan aug. 20021 752 inlägg
#2

Det går inte, finns ingen ReDim i Java :),du får göra en temporär array där du sparar allt och sedan ökar du storleken på den gammla och fyller den gammla med de gammal värdena igen. Om du vill ha dynamisk storlek så får du titta på Vector och liknande collection klasser.

/Viktor

BrimbaMedlem sedan dec. 19995 875 inlägg
#3

Jovisst.

Saken är den att jag skapar en statisk array (klassarray) vid klassinitieringen. Men däremot vill jag förändra storleken på den arrayen i en metod.

Problemet är ju att om jag skapar en temporär array i metoden och sedan skapar en ny array med samma namn som klassarrayen som initierades i början, så ersätts den ändå in. Utan klassarrayen finns kvar som den var från början, medan den nyskapade arrayen - med samma namn förvisso - innehåller korrekta värden, fast den är bara giltlig i metoden.

Några tips på hur jag löser detta?

BrimbaMedlem sedan dec. 19995 875 inlägg
#4

Problemet var att jag skrev

int arrWee[] = new int[6];

i metoden istället för att skriva:

arrWee = new int[6];

PeWMedlem sedan juni 200010 432 inlägg
#5

Några tips på hur jag löser detta?

Vet inte om redan fixat det, men generellt sett så kan du ju lösa liknande problem med att endera snegla på det färdiga objektet "array" eller så skapar du helt enkelt en egen inbyggd (i din klass) klass som har lite egna metoder för lagringen av data, manipulation... här en array men det kan ju vara vad som helst (länkad struktur... m.m)
Här finns ett exempel på hur jag menar (den inbyggda klassen arr i BST)

126 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)