droidchef
droidchef

Reputation: 2307

Initialise ArrayList<ArrayList<Int>> with a size in kotlin

I am trying to initialise a list with a size in the constructor. But the size of my list is 0.

val seqList = ArrayList<ArrayList<Int>>(N) // This has the Problem
val queries = ArrayList<Query>(Q) // This works like a charm

I have both N and Q set as non zero inputs from the user lets say N = 100 and Q = 100

While debugging my code I found out that, queries.size() = 100 but seqList.size() = 0

Is my assumption incorrect, that seqList should also have been initialized with N ArrayList<Int> objects.

Upvotes: 12

Views: 14139

Answers (1)

s1m0nw1
s1m0nw1

Reputation: 82017

Your assumption isn't correct, I'm afraid.

Quoted from the documentation of ArrayList:

Provides a MutableList implementation, which uses a resizable array as its backing storage.

This implementation doesn't provide a way to manage capacity, as backing JS array is resizeable itself. There is no speed advantage to pre-allocating array sizes in JavaScript, so this implementation does not include any of the capacity and "growth increment" concepts.

The constructor particularly:

ArrayList(initialCapacity = 0))

Creates an empty ArrayList.

An empty ArrayList is created, thus providing 100 as an argument will not create elements inside the list.

Upvotes: 13

Related Questions