Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a fixed size IntArray and initializing the array later in Kotlin?

I can't figure out a way to add values to an array in Kotlin .

I want to get values from user and add them to the array.

val arr = arrayOf<Int>()

or

var arr = intArrayOf()

In Java I would do something like this:

Scanner ob = new Scanner(System.in);
int arr[] = new int[5];
for (int i = 0; i < arr.length; i++) {
   arr[i]=ob.nextInt();
}

How can I do the same in Kotlin?

like image 334
Aman gautam Avatar asked Jul 15 '17 20:07

Aman gautam


2 Answers

You need to escape the static field in of System class with backtick (`), since in is a keyword in Kotlin. for example:

val ob = Scanner(System.`in`)

You can create a fixed size int[] array without initializing it immediately in Kotlin, then the default value of the elements in array are 0. for example:

val arr = IntArray(5) // create IntArray via constructor

There is a bit different for using for-loop in Kotlin, for example:

for(i in 0 until arr.size){
    arr[i] = ob.nextInt();
}

OR initializing an int[] array during creation, for example:

val arr = IntArray(5){ ob.nextInt() }
like image 50
holi-java Avatar answered Sep 19 '22 12:09

holi-java


Arrays have fixed sizes. When creating an array, you will have to declare it's size during initialization.

val arr: IntArray = intArrayOf(1, 2, 3)

or

val arr = arrayOf(1, 2, 3)

or

val arr = Array (3){it}

If you want to create a collection that you can dynamically add values to, then you can create a mutable list.

val list = mutableListOf<Int>()
list.add(1)
list.add(2)
list.add(3)
like image 26
Alf Moh Avatar answered Sep 20 '22 12:09

Alf Moh