Kotlin에는 Java ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
와 동등한가 byte[], short[], int[],char[], double[], float[]
있습니다.
이제 궁금 StringArray
합니다 .Java와 동등한 것이 String[]
있습니까?
답변
에 대한 특별한 경우가 없습니다 String
때문에, String
과는 대조적으로, JVM에 일반 참조 타입 자바 프리미티브 ( int
, double
, …) – 참조에 저장하는 것이 Array<T>
필요 같은 객체로 권투 Integer
와Double
. IntArray
Kotlin 과 같은 특수 배열의 목적은 비 복제 프리미티브를 저장하여 복싱 및 언 박싱 오버 헤드를 제거하는 것입니다 ( int[]
대신 Java와 동일 Integer[]
).
Java 와 동등한 Array<String>
(및 Array<String?>
nullables)을 사용할 수 있습니다 String[]
.
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
답변
사용 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()
답변
Array of Strings
Kotlin 에서 공란을 만들려면 다음 6 가지 방법 중 하나를 사용해야합니다.
첫 번째 접근법 :
val empty = arrayOf<String>()
두 번째 접근법 :
val empty = arrayOf("","","")
세 번째 접근 방식 :
val empty = Array<String?>(3) { null }
네 번째 접근 방식 :
val empty = arrayOfNulls<String>(3)
다섯 번째 접근법 :
val empty = Array<String>(3) { "it = $it" }
여섯 번째 접근 방식 :
val empty = Array<String>(0, { _ -> "" })
답변
박스형이 아닌 프리미티브의 배열을 만들 수 있도록 이러한 유형이 있습니다. String은 Java의 기본 요소가 아니기 때문에 Array<String>
Kotlin에서 Java와 동등한 것으로 사용할 수 있습니다 String[]
.
답변
의 경우 Strings
다른 유형과, 당신은 단지 사용 Array<*>
. 그 이유 IntArray
와 다른 것들도 오토 박싱을 막기 위해서입니다.
그래서 int[]
관련 IntArray
곳에 Integer[]
관련 Array<Int>
.
답변
문자열 배열을 만드는 일반적인 방법 중 일부는 다음과 같습니다.
- var arr = Array (5) { “”}
이렇게하면 초기 값이 비어있는 5 개의 문자열 배열이 만들어집니다.
- var arr = arrayOfNulls
<String?>
(5)
초기 값이 null 인 크기 5의 배열을 만듭니다. 문자열 데이터를 사용하여 배열을 수정할 수 있습니다.
- var arr = arrayOf ( “zero”, “one”, “two”, “three”)
배열의 내용을 이미 알고 있으면 배열을 직접 초기화 할 수 있습니다.
-
문자열의 다차원 배열 을 만드는 쉬운 방법이 있습니다.
var matrix = Array (5) {Array (6) { “”}}
빈 문자열의 초기 값으로 5 행 6 열의 행렬을 만드는 방법입니다.
답변
이 예제는 Android에서 완벽하게 작동합니다.
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
도움이 되었기를 바랍니다