webForumDet fria alternativet

Lägga till först i en vektor

Java

9 svar · 321 visningar · startad av Bjuris

Medlem sedan juli 2001514 inlägg
Frågan#1

Håller fortfarande på lite med vektorer och har en fundering, det är nämligen så att jag skulle vilja lägga till en "plats" först i en vektor.
Hur gör man det?
vector.add(blabla) lägger ju till sist..

Medlem sedan aug. 20021 752 inlägg
#2

Om du skriver såhär,

Vector vec=new Vector();
vec.add(0,"Jag");
vec.add(0,"Heter");
vec.add(0,"Anka");
vec.add(0,"Kalle");

Så hamnar de i omvänd ordning. Alla element som ligger efter det index som du skickar med flyttas åt höger. Om du skickar in 0 så blir det samma som att stoppa in den först i vectorn.
Om du inte redan gör det så kan jag rekomendera att du använder Javas API documentation, den är riktigt bra framförallt på att svara på sådanna frågor. http://java.sun.com/j2se/1.4.2/docs/api/.

/Viktor

Medlem sedan juli 2001514 inlägg
#3

.tack tack, det fungerade finfint.

Medlem sedan feb. 2003202 inlägg
#4

Men tänk på att detta är ganska prestandakrävande... Inget som bör göras för större mängder element, i en for-loop t.ex.

(iallafall inte om prestanda är av betydelse.)

Medlem sedan sep. 2001961 inlägg
#5

Om man vill ha den funktionaliteten att man alltid lägger till först är en Stack att föredra.

Medlem sedan nov. 20022 355 inlägg
#6

Lime skrev:

Om man vill ha den funktionaliteten att man alltid lägger till först är en Stack att föredra.

Jo men då försvinner möjligheten att ta ut ifrån något annat ställe än först. Vet ifs inte vad för funktionalitet som krävs här!

Medlem sedan juni 200010 432 inlägg
#7

andreascarlsson skrev:

Men tänk på att detta är ganska prestandakrävande... Inget som bör göras för större mängder element, i en for-loop t.ex.

(iallafall inte om prestanda är av betydelse.)

Då kan man ju iofs istället lägga sist men ha en metod som mappar 0 mot sista elementet och sen dra bort index från antalet element för att nå rätt position. En bakvänd vector, mao. Men man slipper allokera om hela vectorn ivf och prestandan blir inte lidande.

Ett annat alternativ är väl då en vanlig länkad lista då man kan välja om man ska sätta in först eller sist.

Medlem sedan feb. 2003216 inlägg
#8

Kanske en länkad lista med en tillhörande iterator skulle vara något att kolla på?

Medlem sedan dec. 2000399 inlägg
#9

I Java är en Stack dock ingen riktig stack eftersom den ärver av Vector och därför har en hel bunt operationer förutom push och pop. Ganska praktiskt ibland, men inte så snyggt...

Medlem sedan sep. 2001961 inlägg
#10

Nu ska inte du vara strukturfanatiker juventus1... det har hänt saker sedan C skapades... ;-)

259 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)