-
[Kotlin] Array μ¬μ©λ²Android/Kotlin 2021. 8. 12. 02:03λ°μν
- μ΄ κΈμ "μ€μ¬μ±μ Google 곡μ μΈμ΄ Kotlin" κ°μλ₯Ό λ£κ³ 곡λΆν λ΄μ©μΌλ‘ μμ±νμμ΅λλ€.
Array
C++, Javaμμλ λμΌνκ² μ‘΄μ¬νλ λ°°μ΄(Array)λ μ°μλ λ©λͺ¨λ¦¬ μ ν 곡κ°μ ν보νμ¬ κ°μ μ μ₯νκ³ κ΄λ¦¬νλ μλ£ κ΅¬μ‘° μ€ νλμ λλ€.
λ°°μ΄μ 0λΆν° μμλλ μΈλ±μ€ λ²νΈλ‘ κ΄λ¦¬νκ³ Kotlinμμ Arrayλ Generic νμ μΌλ‘ μ ν΄μ Έ μμ΄ λ€μν νμ μ κ°μ λ΄μ μ μμ΅λλ€.
Kotlinμμλ λ°°μ΄μ μμ±νλ λ³λμ ν¨μκ° μ£Όμ΄μ§λλ° arrayOf() ν¨μλ₯Ό μ¬μ©νλ©΄ μ½κ² μμ±ν μ μμ΅λλ€.
arrayOfμλ νλμ νμ λ§μ΄ μλ μ¬λ¬ νμ μ λ΄μ μ μκ³ , ν νμ μΌλ‘ μ ννκ³ μΆμΌλ©΄ μλ£ν + arrayOf() ννμ ν¨μλ₯Ό μ¬μ©ν©λλ€.
arrayOf< Type >λ κ°λ₯ν©λλ€.
fun main(){ val array1 = arrayOf(10, 20.0, "30", "hi") println(array1) println(array1.contentToString()) }
λ€μκ³Ό κ°μ΄ arrayμλ Int, Float, Stirng νμ λ± μ¬λ¬ νμ μ΄ κ³΅μ‘΄ν μ μμ΅λλ€. λ°°μ΄μ μΆλ ₯νκΈ° μν΄μ array1μ체λ₯Ό print νκ² λλ©΄,
ν΄λΉ μΈμ€ν΄μ€μ ν΄μ¬ κ°μ΄ λνλκ² λ©λλ€. λ°°μ΄ λ΄λΆμ κ°λ€μ μΆλ ₯νκΈ° μν΄μλ contentToString() ν¨μλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.fun main(){ val array1 = arrayOf(10, 20, "30", "hi") val array2 = intArrayOf(1,2,3) val array3 = doubleArrayOf(10.0, 20.0, 30.0) val array4 = charArrayOf('1','2','3') val array5 = arrayOf<String>("hi","hello","world") }
λ€μκ³Ό κ°μ΄ λ€μν νμ μΌλ‘ λνλΌμλ μμ΅λλ€.
Array μμ±
arrayOf ν¨μκ° μλ Array ν΄λμ€λ₯Ό ν΅ν΄ μ§μ κ°μ²΄λ₯Ό μμ±ν μ μμ΅λλ€.
Array(κ°―μ, {μ}) ννλ₯Ό μ¬μ©ν©λλ€. κ³ μ°¨ν¨μμ νΉμ§μΌλ‘ λλ€μμ μ€κ΄νΈλ μμ λ°λ‘ λΉΌμ μμ±ν μ μμ΅λλ€.
fun main(){ val array1 = Array(5,{0}) // 0 0 0 0 0 val array2 = Array(5, {"1"}) // 1 1 1 1 1 val array3 = Array(5, {'2'}) // 2 2 2 2 2 val array4 = Array(5, {it}) // 0 1 2 3 4 val array5 = Array(5){it*2} // 9 2 4 6 8 println(array4.contentToString()) println(array5.contentToString()) }
λ€μκ³Ό κ°μ΄ μμ΄ μ νμλ κ³³μ κ°μ λμ νκ² λλ©΄ λͺ¨λ κ°λ€μ΄ ν΄λΉ κ°μΌλ‘ μ΄κΈ°νκ° λκ³ kotlinμμλ μλμΌλ‘ νμ μ μ μΆν μ μμ΅λλ€. λλ€μμ μ¬μ©ν κ²½μ°μλ 0λΆν° νλμ© μ¦κ°νλ κ°λ€μ΄ λμ λκ² λ©λλ€.
λ€μ°¨μ λ°°μ΄
fun main(){ val array1 = arrayOf(arrayOf(1,2,3), arrayOf(4,5,6), arrayOf(7,8,9)) println(array1) println(array1.contentToString()) println(array1.contentDeepToString()) for(row in array1){ for(item in row){ print(item) } println() } val array2 = Array(5, Array(5, {0})) }
- λ°°μ΄ λ΄λΆμ λ°°μ΄μ΄ μλ κ²μΌλ‘ μ½λ©ν μ€νΈλ₯Ό ν λ μμ£Ό μ¬μ©νκΈ° λλ¬Έμ μ μμμΌ ν©λλ€.
- λ€μ°¨μ λ°°μ΄μ μΆλ ₯ν λμ νΉμ§μ contentToStringμ μ¬μ©νλλΌλ λ°°μ΄ λ΄λΆλ λ°°μ΄λ‘ μκΈ° λλ¬Έμ ν΄λΉ λ°°μ΄μ ν΄μ¬κ°λ€μ΄ λμ€κ² λ©λλ€.
- λ€μ°¨μ λ°°μ΄μ κ°λ€μ΄ λͺ¨λ μΆλ ₯νκΈ° μν΄μλ contentDeepToString() μ¬μ©ν΄μΌ ν©λλ€.
λ°°μ΄ μμ μ κ·Ό
fun main(){ val array1 = arrayOf(1,2,3,4,5) println(array1[0]) // 1 println(array1.get(1)) // 2 array1[0] = -1 println(array1.contentDeepToString()) // -1 2 3 4 5 array1.set(0,1) println(array1.contentDeepToString()) // 1 2 3 4 5 }
- λ°°μ΄μ μ²μ μμ±ν λ μμ±ν λ©λͺ¨λ¦¬ 곡κ°λ§νΌμ μΈλ±μ€λ₯Ό ν΅ν΄μ μ κ·Όμ΄ κ°λ₯ν©λλ€.
- μΈλ±μ€λ‘ μ κ·Όνμ¬ μμλ₯Ό νμΈνκ±°λ, get(index) ν¨μλ₯Ό ν΅ν΄μλ μ κ·Όμ΄ κ°λ₯ν©λλ€.
- λ°°μ΄ μμ λ΄λΆμ κ°μ μ€μ ν λλ μΈλ±μ€λ₯Ό μ΄μ©νμ¬λ set(index, value) ν¨μλ₯Ό μ¬μ©νμ¬ μ κ·Όν μ μμ΅λλ€.
μ¬λ¬ λ©μλ
size : λ°°μ΄μ κ°―μλ₯Ό λ°ννλ ν¨μ
fun main(){ val array1 = arrayOf(1,2,3,4,5) println(array1.size) // 5 }
plus : νΉμ μμλ₯Ό μΆκ°ν μλ‘μ΄ λ°°μ΄μ λ°ννλ ν¨μ
fun main(){ val array1 = arrayOf(1,2,3,4,5) array1.plus(6) println(array1.contentToString()) // 1 2 3 4 5 val array2 = array1.plus(6) println(array2.contentToString()) // 1 2 3 4 5 6 }
plus λ©μλλ₯Ό νΈμΆνλ€κ³ νμ¬ ν΄λΉ λ°°μ΄μ μμκ° μΆκ°λλ κ²μ΄ μλλλ€. λ°°μ΄μ ν¬κΈ°λ μ²μ μμ±ν λ μ ν΄μ Έ μκ³ λ³κ²½ν μ μκΈ° λλ¬Έμ plus λ©μλλ μΆκ°ν μμλ₯Ό ν¬ν¨νλ μλ‘μ΄ λ°°μ΄μ λ°ννκ² νλ ν¨μμ λλ€.
sliceArray : μ§μ λ μΈλ±μ€ λ²μμ ν΄λΉνλ μμλ§ κ°μ§κ³ μλ‘μ΄ λ°°μ΄μ λ°ννλ ν¨μ
fun main(){ val array1 = arrayOf(1,2,3,4,5) val array2 = array1.sliceArray(1..3) println(array2.contentDeepToString()) }
first : μ μΌ μμ κ°μ λ°ννλ ν¨μ
last : μ μΌ λ€μ κ°μ λ°ννλ ν¨μ
indexOf : μ§μ λ κ°μ indexλ₯Ό λ°ννλ ν¨μfun main(){ val array1 = arrayOf(1,2,3,4,5,3) println(array1.first()) // 1 println(array1.last()) // 3 println(array1.indexOf(3)) // 2 }
indexOf ν¨μ κ°μ κ²½μ° κ°μ μμκ° λκ°μ΄ μμ λ κ°μ₯ μμͺ½μ μΈλ±μ€λ₯Ό λ°ννκ² λ©λλ€. λ§μ½ λ€μμ λΆν° μ°Ύκ³ μΆμ μΈλ±μ€λΌλ©΄ lastIndexOf() ν¨μλ₯Ό μ¬μ©νλ©΄ λ©λλ€.
average : νκ· κ°μ λ°ννλ ν¨μ
fun main(){ val array1 = arrayOf(1,2,3,4,5) println(array1.average()) // 3 }
count : μμμ κ°―μλ₯Ό λ°ννλ ν¨μ
contains : μ§μ λ κ°μ΄ ν¬ν¨λμ΄ μλμ§ νμΈνλ ν¨μfun main(){ val array1 = arrayOf(1,2,3,4,5) println(array1.count()) // 5 println(array1.contains(3)) // true println(5 in array1) // true println(100 in array1) // false }
sortedArray : μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ λ°°μ΄μ λ°ννλ ν¨μ
sortedArrayDescending : λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬λ λ°°μ΄μ λ°ννλ ν¨μfun main(){ val array1 = arrayOf(5,1,3,2,4) val array2 = array1.sortedArray() val array3 = array1.sortedArrayDescending() println(array2.contentToString()) // 1 2 3 4 5 println(array3.contentToString()) // 5 4 3 2 1 }
- μΆκ°λ‘ κΆκΈν μ μ΄λ μμ ν λΆλΆ μμΌλ©΄ λκΈλ‘ λ¨κ²¨μ£ΌμΈμ.
λ°μν'Android > Kotlin' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Kotlin] List μ¬μ©λ² (0) 2021.08.12 [Kotlin] String μ¬μ©λ² (0) 2021.08.12 [Kotlin] Functional Programming (0) 2021.08.11 [Kotlin] Generic, Inner ν΄λμ€ (0) 2021.07.07 [Kotlin] Companion Object λ? (0) 2021.07.05