208 votes

Quel est l'équivalent Kotlin de Java's String []?

Je vois que Kotlin a ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray , ce qui équivaut à byte[], short[], int[],char[], double[], float[] en Java.

Maintenant , je me demande, est - il StringArray équivalent à Java String[] ?

284voto

hotkey Points 119

Il n'y a pas de cas particulier pour Stringcar String ordinaire référentielle de type sur la JVM, en contraste avec Java primitives (int, double, ...) -- les stocker dans une référence Array<T> nécessite la boxe dans des objets comme Integer et Double. Le but de spécialisé tableaux comme IntArray dans Kotlin est pour stocker des boîtes de primitives, de se débarrasser de boxing et unboxing frais généraux (le même que Java, int[] au lieu de Integer[]).

Vous pouvez utiliser Array<String> (et Array<String?> pour nullable), ce qui est équivalent à String[] en Java:

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")

Voir aussi: les Tableaux dans la langue de référence

31voto

Dan Alboteanu Points 1570

utiliser arrayOf , arrayOfNulls , emptyArray

 var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()
 

28voto

Gigantic Points 4447

Pour créer un Array of Strings vide dans Kotlin, vous devez utiliser l’une des six approches suivantes:

Première approche:

 val empty = arrayOf<String>()
 

Deuxième approche:

 val empty = arrayOf("","","")
 

Troisième approche:

 val empty = Array<String?>(3) { null }
 

Quatrième approche:

 val empty = arrayOfNulls<String>(3)
 

Cinquième approche:

 val empty = Array<String>(3) { "it = $it" }
 

Sixième approche:

 val empty = Array<String>(0, { _ -> "" })
 

11voto

zsmb13 Points 36441

Ces types sont là pour vous permettre de créer des tableaux de primitives, et non les types encadrés. Puisque String n'est pas une primitive en Java, vous pouvez simplement utiliser Array<String> dans Kotlin en tant qu'équivalent d'un Java String[] .

6voto

Niek Haarman Points 13931

Pour Strings et les autres types, vous utilisez simplement Array<*> . La raison pour laquelle IntArray et d'autres existent est d'empêcher l'autoboxing.

So int[] correspond à IntArrayInteger[] correspond à Array<Int> .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X