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 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

Kotlin: How to check if field's value is in Array or not in FireStore

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

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

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

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

HotTag

Archive