Avatar billede pyroman Nybegynder
07. marts 2004 - 16:07 Der er 5 kommentarer og
1 løsning

vector - indsæt nyt element - hvad er bedst

Howdy!

Undskyld min dårlige titel - men aner ikke hvad jeg skal kalde det...

Jeg har en Vecor med nogle elementer i - og der kan så en gang imellem indsættes nogle nye - men nogle kan også fjernes...
Så mit spørgsmål er:
Er det bedst bare at tilføje det nye element i bunden af vectoren og så kan der bare være nogle tomme index'er, fordi deres indhold er blevet fjernet - og derved risikere at man får en vector med en længde på måske 1000 - men som kun indeholder 15 elementer...
...Eller er det bedre at indsætte det nye element på den første tomme plads - ved altså først at finde denne og så smide elementet ind på denne...

Hvad er hurtigst og tager mindst hukommelse?

Er der nogle alternativer eller har jeg fat i det rigtige?

/Filip
Avatar billede pyroman Nybegynder
07. marts 2004 - 16:16 #1
hmmm - tror selv jeg har fundet løsningen:

Vector.trimToSize();

- Men hvis der er nogen der stadig har noget at sige så er i velkomne... :)
Avatar billede arne_v Ekspert
07. marts 2004 - 16:17 #2
Når du sletter elementer i en Vector så rykkes de elementer der liger
efter frem, så der ikke er huller.

Det er hurthigst at indsætte til sidst fordi så skal du ikke skubbe elementer.

Pladsen er den samme uanset hvad du gør.
Avatar billede arne_v Ekspert
07. marts 2004 - 16:19 #3
trimToSize frigør hukommelse som ligger til sidst og venter på at blive brugt.

Det er ikke en metode man normalt bruger.
Avatar billede pyroman Nybegynder
07. marts 2004 - 16:21 #4
Hvorfor %&#¤! findes der så en trimToSize() hvis Capacity altid er lig Size??

Er bare nysgerrig fordi jeg er ret ny til JAVA...
Avatar billede arne_v Ekspert
07. marts 2004 - 16:28 #5
capacity er heller ikke lig med size

men forskellen på capacity og size ligger altid til sidst

så det er hurtigt at add'e til enden af vectoren

men der sker ikke de stor ulykker ved at der ligger en smule ubrugt
memory til sidst

husk at det er referencer du gemmer ikke selve objekterne - så det er ikke
så meget
Avatar billede pyroman Nybegynder
07. marts 2004 - 16:40 #6
Ok - jamen jeg si'r super mange gange tak! ... og så skal du nok blive de 37 point rigere...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester