JavaのString []に相当するKotlinとは何ですか?


163

KotlinにはJava ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArrayと同等のがあることがわかりbyte[], short[], int[],char[], double[], float[]ます。

今、私は疑問に思っています、StringArrayJavaに相当するものはありますString[]か?


7
typealias StringArray = Array<String>;)
marstran

回答:


224

以下のための特別なケースはありませんStringので、Stringとは対照的に、JVM上の一般的な参照タイプであるJavaのプリミティブ(intdouble、...) -リファレンスでそれらを格納するArray<T>必要がようなオブジェクトにそれらをボクシングIntegerDoubleIntArrayKotlinのような特殊な配列の目的は、ボックス化されていないプリミティブを格納し、ボックス化とボックス化解除のオーバーヘッドを取り除くことです(Java int[]ではなくと同じInteger[])。

Java での使用と同等のArray<String>(そしてArray<String?>nullableのために)使用できString[]ます。

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

参照:言語リファレンスの配列


18

arrayOfarrayOfNullsemptyArrayを使用

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

16

Array of StringsKotlinで空を作成するには、次の6つの方法のいずれかを使用する必要があります。

最初のアプローチ:

val empty = arrayOf<String>()

2番目のアプローチ:

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

3番目のアプローチ:

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

4番目のアプローチ:

val empty = arrayOfNulls<String>(3)

5番目のアプローチ:

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

6番目のアプローチ:

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

9

これらのタイプはそこにあるので、ボックス化されたタイプではなく、プリミティブの配列を作成できます。StringはJavaのプリミティブではないためArray<String>、KotlinでJavaに相当するものとして使用できますString[]


5

以下のためにStrings、他のタイプと、あなただけを使用しますArray<*>IntArrayオートボクシングを防止するためなどの理由があります。

したがって、int[]関連するIntArray場所にInteger[]関連していArray<Int>ます。


1

文字列配列を作成する一般的な方法のいくつかは、

  1. var arr = Array(5){""}

これにより、初期値が空の文字列となる5つの文字列の配列が作成されます。

  1. var arr = arrayOfNulls <String?>(5)

これにより、初期値がnullになるサイズ5の配列が作成されます。文字列データを使用して配列を変更できます。

  1. var arr = arrayOf( "zero"、 "one"、 "two"、 "three")

すでに配列の内容がわかっている場合は、配列を直接初期化できます。

  1. 文字列の多次元配列を作成する簡単な方法もあります。

    var matrix = Array(5){Array(6){""}}

    これは、空の文字列の初期値を持つ5行6列の行列を作成する方法です。


0

この例はAndroidで完全に動作します

kotlinでは、ラムダ式を使用できます。Kotlin配列コンストラクターの定義は次のとおりです。

Array(size: Int, init: (Int) -> T)

これは次のように評価されます。

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

または:

skillsSummaryDetailLinesArray = Array<String>(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

この例では、フィールド定義は次のとおりです。

private var skillsSummaryDetailLinesArray: Array<String>? = null

お役に立てれば


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.