How are Kotlin Array's toList and asList different?

M. Palsich :

The Kotlin Array class offers asList(), toList(), and toMutableList() methods. The first two methods both return a List and are described in the Kotlin reference as follows:

  • asList() returns a List that wraps the original Array.
  • toList() returns a List containing all elements [of the original Array].

These methods appear interchangeable. How do these two methods differ in practice?

s1m0nw1 :

TL;DR

The list created with asList keeps a reference to the original Array.
The list created with toList/toMutableList is backed by a copy of the original Array.

Explanation

asList

The asList function creates a list that reuses the same Array instance, which implies that changes to the original array also have impact on the List:

val arr = arrayOf(1, 2, 3)
val l1 = arr.asList()

arr[0] = 4
println(l1) // [4, 2, 3]

toList

This isn't the case for toList/toMutableList since the array is copied:

val arr = arrayOf(1, 2, 3)
val l2 = arr.toList()

arr[0] = 4
println(l2) // [1, 2, 3]

The Kotlin source code can be found here.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Why does Java's List have "List.toArray()", but arrays don't have "Array.toList()"?

How are Kotlin's Coroutines different from Java's Executor in Android?

Convert from Arrays.asList to Array

Kotlin JSON's array is not a primitive array

How can I convert an array to a list without using Arrays.asList() method or Java List Interface

Arrays.asList() of an array

Arrays.asList(T[] array)?

How can I call collect(Collectors.toList()) on a Java 8 Stream in Kotlin?

How to Check if an Array's Elements are All Different Java

Is AsList() better than ToList() with IDbConnection.Query() which returns IEnumerable?

Kotlin's reduce() function with different types

How to display the array items into different div's while iterating?

difference between toList().take(10) and take(10).toList() in kotlin

Java to Kotlin Array conversion, why different in different scenario?

How to slice np array's certain dimention with different start point?

Hashset toList() time complexity in kotlin, is it constant or not?

Equivalent of RxJava .toList() in Kotlin coroutines flow

How can I convert a array.map().toList to a generic type?

Different background for a button's states in Kotlin

how to get the different combinations from an array's elements?

How to create an array of permissions in Kotlin similar to how it's done in Java?

How to create an array of different lenght each time it's called

How to store two different array's in code igniter cart?

How To Use insert array's data into different rows using For Loop

How to generate marker array in Kotlin

How to replace ToList() with Join()

How to merge 2 array objects with different key's name in Javascript?

How to reshape numpy array from image on different monitor's resolution

How can I write a function for an order Analysis that will take array of different object data types and return an object in kotlin

TOP Ranking

  1. 1

    How can I create a column whose entries depend on the contents of a column in another table?

  2. 2

    pump.io port in URL

  3. 3

    How to display items using sessions

  4. 4

    BigQuery - concatenate ignoring NULL

  5. 5

    no applicable method for 'mutate_' applied to an object of class "c('integer', 'numeric')"

  6. 6

    How i extract text from a model dialog in selenium?

  7. 7

    x no applicable method for 'tbl_vars' applied to an object of class "c('double', 'numeric')"

  8. 8

    AirflowException: Celery command failed - The recorded hostname does not match this instance's hostname

  9. 9

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  10. 10

    Most efficient regex for checking if a string contains at least 3 alphanumeric characters

  11. 11

    using excel range find return Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))

  12. 12

    redirect your computer port to url

  13. 13

    Can't create database with Symfony 4.1 : could not find driver

  14. 14

    How to fix "Exception evaluating SpringEL expression" error after submitting a variable Spring/Thymeleaf

  15. 15

    A python function to get the maximum value of a specific column, given a string that represents a table in CSV format

  16. 16

    Double spacing in rmarkdown pdf

  17. 17

    Uploading Files on production server returns either CORS error or POST 400 Bad Request using Apollo-Graphql

  18. 18

    Android Kotlin Unit test failing with io.mockk.MockKException: no answer found for

  19. 19

    Change Model input_shape but got an : ValueError: Input 0 of layer dense_44 is incompatible with the layer

  20. 20

    Formik, Yup - How to check is Decimal number

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive