Your code is very simple. The question is whether it is fast enough.
Test it:
B4X:
Dim bmproot As List
bmproot.Initialize
For i = 1 To 100000
bmproot.Add(Rnd(1, 10000))
Next
Dim n As Long = DateTime.Now
For Test = 1 To 10000
Dim bmp(bmproot.Size) As Int
For index=0 To bmproot.Size-1
bmp(index)=bmproot.Get(index)
Next
Next
Log((DateTime.Now - n) / 10000)
On my computer it takes 0.1ms to create the array and fill it. Tested with a list of 100k numbers.
This is of course fast enough.