Coding/VB C C++

fastest way to append an item to an array

smores 2016. 5. 19. 00:11

http://stackoverflow.com/questions/18097756/fastest-way-to-add-an-item-to-an-array



What is the fastest way to add a new item to an existing array?

Dim arr As Integer() = {1, 2, 3}
Dim newItem As Integer = 4

(I already know that when working with dynamic list of items you should rather use a ListArrayList or similar IEnumerables. But what to do if you're stuck to legacy code that uses arrays?)

What I've tried so far:

' A) converting to List, add item and convert back
Dim list As List(Of Integer)(arr)
list.Add(newItem)
arr = list.ToArray()
' --> duration for adding 100.000 items: 33270 msec

' B) redim array and add item
ReDim Preserve arr(arr.Length)
arr(arr.Length - 1) = newItem
' --> duration for adding 100.000 items: 9237 msec

' C) using Array.Resize
Array.Resize(arr, arr.Length + 1)
arr(arr.Length - 1) = newItem
' --> duration for adding 100.000 items: 1 msec
' --> duration for adding 100.000.000 items: 1168 msec


answer is C)