Array based Kotlin interview questions and answers

What is the data type of Array? val arr = arrayOf(1, 2, 3);

The type is Array<Int>.

How to Create Arrays of Different Types in Kotlin


Kotlin allows programmers to easily create different types of arrays using the arrayOf() method. Below, we’ll take a look at how to create arrays containing integer, floats, and strings using this simple but robust procedure.

val arr1 = arrayOf(1, 2, 3)
val arr2 = arrayOf(1.2, 2.3, 3.4)
val arr3 = arrayOf("Hello", "String", "Array)

How to initialize an array in Kotlin with values? How to initialize an array in Kotlin with values?

Junior
Details

In Java an array can be initialized such as:

 int numbers[] = new int[] {10, 20, 30, 40, 50}

How does Kotlin's array initialization look like?

Solution
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)


May you use IntArray and an Array<Int> is in Kotlin interchangeably? May you use IntArray and an Array<Int> is in Kotlin interchangeably?

Mid
Answer

Array<Int> is an Integer[] under the hood, while IntArray is an int[].

This means that when you put an Int in an Array<Int>, it will always be boxed (specifically, with an Integer.valueOf() call). In the case of IntArray, no boxing will occur, because it translates to a Java primitive array.

So no, we can't use them interchangeably.



What is the idiomatic way to remove duplicate strings from array? ☆☆

Details: How to remove duplicates from an Array<String?> in Kotlin?

Answer: Use the distinct extension function:

val a = arrayOf("a", "a", "b", "c", "c")
val b = a.distinct() // ["a", "b", "c"]

You can also use:

  • toSettoMutableSet
  • toHashSet - if you don't need the original ordering to be preserved

These functions produce a Set instead of a List and should be a little bit more efficient than distinct.

 May you use IntArray and an Array is in Kotlin interchangeably? ☆☆☆

Answer: Array<Int> is an Integer[] under the hood, while IntArray is an int[].

This means that when you put an Int in an Array<Int>, it will always be boxed (specifically, with an Integer.valueOf() call). In the case of IntArray, no boxing will occur, because it translates to a Java primitive array.

So no, we can't use them interchangeably.

Source: stackoverflow.com



Aaaa



Comments

Popular posts from this blog

Jetpack Compose based Android interview and questions

Null safety based Kotlin interview questions and answers

Kotlin Some important unsorted interview questions and answers