Toon posts:

[VB.NET]Array uitbreiden met nieuw eerste element

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een array van het type Single. Deze array vul ik door een tekstbestand uit te lezen met getallen. Deze getallen zijn opeenvolgend en daardoor mijn array ook.
Nu wil ik in bepaalde gevallen een getal toevoegen aan het begin van de array. Hoe doe ik dat in VB.NET?
In VB6 deed ik dat door een nieuwe (grotere) array te maken, daar vast de nieuwe waarde in te vullen en vervolgens de 'oude' array 1 voor 1 toe te voegen.
Uiteraard kan ik dat ook in VB.NET doen, maar ik vraag me af of het nu niet handiger kan.
Ik heb al
Visual Basic .NET:
1
.SetValue(nieuwGetal, 0)
gebruikt, maar die overschrijft mijn eerste waarde terwijl ik juist een waarde wil toevoegen.

Graag een duwtje in de juiste richting.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:39

gorgi_19

Kruimeltjes zijn weer op :9

Gebruikt een List(Of Single) of een Arraylist

[ Voor 8% gewijzigd door gorgi_19 op 25-06-2007 14:26 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

En als je echt veel aan het begin gaat toevoegen dan wil je wellicht een LinkedList gebruiken. De ArrayList doet namelijk hetzelfde als dat je al zelf geprogged had.

Verwijderd

Topicstarter
Bedankt allemaal.

Ik heb nu een arraylist geïmplementeerd en dan met insert voeg ik een item toe aan het begin.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Dat is niet veel efficienter dan wat je eerst deed overigens. Het enige verschil is dat in plaats van te itereren over alle items een Array.copy() gebruikt wordt (welke als het goed is systeem-calls gebruikt intern). Een linked list is efficienter als het aankomt op toevoegen van 1 item voorin de collection.

https://niels.nu


Verwijderd

Topicstarter
@Hydra: Ik zal ook even uitzoeken hoe het met een linked list werkt.
Het gaat overigens niet om een grote lijst. Ca. 5 tot 20 items en er wordt maximaal 1 item voorin toegevoegd en 1 achteraan.
Nogmaals bedankt allemaal, ik kom hier weer een heel eind mee.

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Kun je niet beter een stack gebruiken?

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 13-10 22:03

MrSleeves

You'll thank me later.

Een Stack is bedoeld voor een LIFO-lijst en kan je alleen maar aan de "bovenkant" (het is tenslotte een stapel :) ) waarden toevoegen. Aan de SP te zien, wil de TS dat niet.

Heeft de LinkedList die hierboven genoemd is niet als nadeel dat een item opzoeken op index weer minder efficiënt is?

[ Voor 25% gewijzigd door MrSleeves op 26-06-2007 08:22 ]

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
MrSleeves schreef op dinsdag 26 juni 2007 @ 08:19:
Een Stack is bedoeld voor een LIFO-lijst en kan je alleen maar aan de "bovenkant" (het is tenslotte een stapel :) ) waarden toevoegen. Aan de SP te zien, wil de TS dat niet.

Heeft de LinkedList die hierboven genoemd is niet als nadeel dat een item opzoeken op index weer minder efficiënt is?
Idd bij een LinkedList zul je als je op index wilt zoeken vanaf het eerste ( of eventueel laatste bij double linked list ) element moeten itereren. Het is dus inderdaad een beetje afwegen wat je het meeste wilt doen. Wil je vaak op index zoeken en moet dat snel zijn dan gebruik je een Array of List<T> als je vaak elementen toe wilt voegen in het midden of het begin dan gebruik je een LinkedList<T>.

Overigens zal het voor 15 tot 20 elementen niet zoveel uithalen en zou ik gewoon lekker een List<T> gebruiken.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1