๐ก๋ฐฐ์ด, List, Map, Set๐ก
โช๏ธ๋ฐฐ์ด
ยท 0๋ถํฐ ์์๋๋ ์ธ๋ฑ์ค ๋ฒํธ๋ก ๊ด๋ฆฌํ๋ค.
ยท ๋ค์ํ ํ์ ์ ๊ฐ์ ๋ฐฐ์ด์ ๋ด์ ์ ์์ผ๋ฉฐ ํ ๊ฐ์ง ํ์ ์ผ๋ก ์ ํํ์ฌ ๊ฐ์ ๋ด์ ์๋ ์๋ค.
fun main() {
// ๋ด์ฉ์ ์ถ๋ ฅํ๋ ค๋ฉด contentToString()
val arr1 = arrayOf(10, 20, 30, 40, 50)
println("arr1 : $arr1")
println("arr1 : ${arr1.contentToString()}")
// ๋ค์ํ ํ์
์ ๋ฃ๊ธฐ
val arr2 = arrayOf(10, 20.0, "๊ฐ๋๋ค", true)
println("arr2 : ${arr2.contentToString()}")
// ํ ๊ฐ์ง ํ์
๋ง ๋ฃ๊ธฐ
// ๋งจ ์์ ํ์
+ArrayOf๋ฅผ ๋ถ์ด๊ฑฐ๋ ์ ๋ค๋ฆญ ์ฌ์ฉ
val arr3 = intArrayOf(10, 20, 30, 40, 50)
val arr4 = arrayOf<Double>(1.0, 2.0, 3.0, 4.0, 5.0)
println("arr3 : ${arr3.contentToString()}")
println("arr4 : ${arr4.contentToString()}")
}
๋ฐฐ์ด ์์ฑ
ยท arrayOf ํจ์๊ฐ ์๋ Array ํด๋์ค๋ฅผ ํตํด ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
fun main() {
// ํฌํค๋ 5, ๊ฐ๋ค์ 0์ผ๋ก ๋ง๋ค๊ธฐ
val arr1 = Array(5, {0})
println("arr1 : ${arr1.contentToString()}")
// ๋๋ค๋ฅผ ์ด์ฉ
// it์๋ 0๋ถํฐ 1์ฉ ์ฆ๊ฐํ๋ ๊ฐ์ด ๋ค์ด๊ฐ
val arr2 = Array(5) {it * 2}
println("arr2 : ${arr2.contentToString()}")
}
for๋ฌธ ์ฌ์ฉ
ยท ๋ฐฐ์ด์ด ๊ฐ์ง๊ณ ์๋ ๊ฐ์ ํฌ๊ธฐ๋งํผ ๋ฐ๋ณตํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
fun main() {
val arr1 = arrayOf(10, 20, 30, 40, 50)
for(item in arr1) {
print("$item, ")
}
}
๋ค ์ฐจ์ ๋ฐฐ์ด
ยท ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ์๋ ๊ฒ์ ์๋ฏธํ๋ค.
fun main() {
val arr1 = arrayOf(arrayOf(10, 20, 30), arrayOf(40, 50, 60), arrayOf(70, 80, 90))
// ์ฃผ์๊ฐ๋ง ๋์ด
println("arr1 : $arr1")
println("arr1 : ${arr1.contentToString()}")
// ๊ฐ๋ค์ ๋์ค๊ฒ ํ๋ ค๋ฉด contentDeepToString()
println("arr1 : ${arr1.contentDeepToString()}")
// ๋ค ์ฐจ์ ๋ฐฐ์ด์ for๋ฌธ์ ์ฌ์ฉ
for(item1 in arr1) {
for(item2 in item1) {
print("$item2, ")
}
}
}
๋ฐฐ์ด ์์ ์ ๊ทผ
fun main() {
// ํน์ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
val arr1 = arrayOf(10, 20, 30, 40, 50)
println("arr1 0 : ${arr1[0]}")
println("arr1 1 : ${arr1[1]}")
println("arr1 2 : ${arr1[2]}")
println("arr1 3 : ${arr1[3]}")
println("arr1 4 : ${arr1[4]}")
// ๊ฐ ์์ ํ๊ธฐ
arr1[0] = 100
arr1.set(1, 200)
println("arr1 : ${arr1.contentToString()}")
// ๋ฐฐ์ด์ ํฌ๊ธฐ
println("arr1 size : ${arr1.size}")
}
๋ฐฐ์ด์ ๋ค์ํ ๋ฉ์๋๋ค
ยท Kotlin์์๋ Java๋ณด๋ค ๋ ๋ค์ํ ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ค.
ยท ์ด ๋ฐ์๋ ๋ ๋ง์ ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค.
fun main() {
val arr1 = arrayOf(10, 20, 30, 40, 50)
// ๋ฐฐ์ด ์ถ๊ฐํ๊ธฐ
val arr2 = arr1.plus(60)
println("arr2 : ${arr2.contentToString()}")
// ํน์ ๋ถ๋ถ ๊ฐ์ ธ์ค๊ธฐ (1 ~ 3)
val arr3 = arr1.sliceArray(1..3)
println("arr3 : ${arr3.contentToString()}")
println("์ฒซ ๋ฒ์งธ ๊ฐ : ${arr1.first()}")
println("๋ง์ง๋ง ๊ฐ : ${arr1.last()}")
println("30์ ์์น : ${arr1.indexOf(30)}")
println("ํ๊ท ๊ฐ : ${arr1.average()}")
println("ํฉ์น ๊ฐ : ${arr1.sum()}")
println("๊ฐ์ : ${arr1.count()}")
println("๊ฐ์ : ${arr1.size}")
println("30์ ํฌํจํ๋์ง : ${arr1.contains(30)}")
println("1000์ ํฌํจํ๋์ง : ${arr1.contains(1000)}")
println("30์ ํฌํจํ๋์ง : ${30 in arr1}")
println("1000์ ํฌํจํ๋์ง : ${1000 in arr1}")
val arr4 = arrayOf(5, 1, 3, 4, 2)
// ์ค๋ฆ์ฐจ์
val arr5 = arr4.sortedArray()
println("arr5 : ${arr5.contentToString()}")
// ๋ด๋ฆผ์ฐจ์
val arr6 = arr4.sortedArrayDescending()
println("arr6 : ${arr6.contentToString()}")
}
โช๏ธList
ยท ๋ฐฐ์ด๊ณผ ๋์ผํ๊ฒ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ค.
ยท ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ ํด์ง๋ฉด ๋ณ๊ฒฝํ ์ ์์ง๋ง List๋ ์ถ๊ฐ, ์ญ์ ๋ฑ์ด ๊ฐ๋ฅํ๋ค.
fun main() {
// ๋ถ๋ณํ ๋ฆฌ์คํธ
val list1 = listOf(10, 20, 30, 40, 50)
println("list1 : $list1")
// ๊ฐ๋ณํ ๋ฆฌ์คํธ
// ๊ฐ์ด ์๋ค๋ฉด ์ ๋ค๋ฆญ์ผ๋ก ํ์
์ ์ ํด์ค์ผ ํจ
val list2 = mutableListOf<Int>()
// String ํ์
์ ๊ฐ์ด ๋ค์ด์๊ธฐ ๋๋ฌธ์ ํ์
์ถ๋ก ๊ฐ๋ฅ
val list3 = mutableListOf("๊ฐ", "๋", "๋ค")
println("list2 : $list2")
println("list3 : $list3")
// ๋น์ด์ ธ์๋ ๋ถ๋ณํ๋ฆฌ์คํธ
val list4 = emptyList<Int>()
println("list4 : $list4")
// null์ ์ ์ธํ ๊ฐ๋ค์ ์ฌ์ฉ
val list5 = listOfNotNull(10, 20, null, 30, null, 40, 50)
println("list5 : $list5")
}
for๋ฌธ ์ฌ์ฉ
fun main() {
val list1 = listOf(10, 20, 30, 40, 50)
for(item in list1) {
print("$item, ")
}
}
List ์์ ์ ๊ทผ
fun main() {
val list1 = listOf(10, 20, 30, 40, 50)
// ํน์ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
println("list1 0 : ${list1.get(0)}" )
println("list1 1 : ${list1[1]}" )
val list2 = listOf(10, 20, 30, 40, 50, 10)
// ํน์ ์์ ์ฐพ๊ธฐ
val index1 = list2.indexOf(10)
println("10 index : $index1")
// indexOf : ์์์๋ถํฐ ์ฐพ์
// lastIndexOf : ๋ค์์๋ถํฐ ์ฐพ์
val index2 = list2.lastIndexOf(10)
println("10 index : $index2")
// ํน์ ๊ฐ์ ์ถ์ถํด ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑ
val list3 = list1.subList(1, 3)
println("list3 : $list3")
}
๊ฐ๋ณํ ๋ฆฌ์คํธ์ ๋ฉ์๋
fun main() {
val list1 = mutableListOf<Int>()
// ์ถ๊ฐํ๊ธฐ
list1.add(10)
list1.add(20)
list1.add(30)
println("list1 : $list1")
// ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ ์ถ๊ฐ
list1.addAll(listOf(40, 50, 60))
println("list1 : $list1")
// ํน์ ์์ ์ฝ์
(index 1์ 100์ผ๋ก ๋ณ๊ฒฝ)
list1.add(1, 100)
println("list1 : $list1")
// ์ ์ฒด ์ฝ์
list1.addAll(2, listOf(400, 500, 600))
println("list1 : $list1")
// ํน์ ์์ ์ญ์
list1.remove(100)
println("list1 : $list1")
// ํน์ ์์๋ค ์ญ์
list1.removeAll(listOf(400, 500))
println("list1 : $list1")
// ํด๋น ์ธ๋ฑ์ค ์ญ์
list1.removeAt(1)
println("list1 : $list1")
// ๊ฐ ๋ณ๊ฒฝ
list1.set(0, 100)
list1[1] = 200
println("list1 : $list1")
val list2 = listOf<Int>()
// ๋ถ๋ณํ -> ๊ฐ๋ณํ
// ๊ฐ๋ค์ ๊ทธ๋๋ก ๊ฐ์ ธ์ ๊ฐ๋ณํ์ผ๋ก ๋ฐ๊พผ๋ค
val list3 = list2.toMutableList()
list3.add(100)
println("list3 : $list3")
// ๊ฐ๋ณํ -> ๋ถ๋ณํ
val list4 = list3.toList()
// ๊ฐ๋ณํ์ด๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ธ
//list4.add(200)
}
โช๏ธMap
ยท List๋ index ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ๊ด๋ฆฌ๋ฅผ ํ๋ค๋ฉด Map์ ์ด๋ฆ์ ํตํด ๊ด๋ฆฌํ๋ค.
fun main() {
// ์ด๋ฆ์ผ๋ก ์ฌ์ฉ ํ ํ์
, ๊ฐ์ฒด์ ํ์
์ ์์ฑํด์ค์ผ ํจ
// ์ถ๋ก ์ด ๊ฐ๋ฅํ๋ค๋ฉด ์๋ต ๊ฐ๋ฅ
// ๋ถ๋ณํ
val map1 = mapOf("key1" to 10, "key2" to 20, "key3" to 30)
println("map1 : $map1")
// ๊ฐ๋ณํ
val map2 = mutableMapOf<String, Int>()
println("map2 : $map2")
// ํ์
์ ๋ค์ํ๊ฒ ์ด๋ค๋ฉด Any๋ฅผ ์ฐ๋ฉด ๋จ
val map3 = mutableMapOf<String, Any>("key1" to 10, "key2" to "๊ฐ", "key3" to false)
println("map3 : $map3")
// ๊ฐ์ฒด ๊ฐ์ ธ์ค๊ธฐ
println("map1 key1 : ${map1.get("key1")}")
println("map1 key2 : ${map1["key2"]}")
// ๋ฉ์๋
println("map1 size : ${map1.size}")
println("map1 keys : ${map1.keys}")
println("map1 values : ${map1.values}")
// key๋ก ์ ๋ฌด ํ์ธ
println("map1 containts key1 : ${map1.containsKey("key1")}")
println("map1 containts key100 : ${map1.containsKey("key100")}")
// value๋ก ์ ๋ฌด ํ์ธ
println("map1 containts value 10 : ${map1.containsValue(10)}")
println("map1 containts value 100 : ${map1.containsValue(100)}")
// ๊ฐ๋ณํ Map์ ๋ฉ์๋
println("map2 : $map2")
// ์ถ๊ฐํ๊ธฐ
map2.put("key1", 100)
println("map2 : $map2")
// ์๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํ๋ฉด ์๋์ผ๋ก ์ถ๊ฐ๊ฐ ๋จ
map2["key2"] = 200
println("map2 : $map2")
// ๊ฐ์ ์ด๋ฆ์ด ์กด์ฌํ๋ค๋ฉด value ๋ณ๊ฒฝ
map2.put("key1", 1000)
map2["key2"] = 2000
println("map2 : $map2")
// ์ญ์
map2.remove("key1")
println("map2 : $map2")
// ๋ถ๋ณํ -> ๊ฐ๋ณํ
val map100 = map1.toMutableMap()
map100["key100"] = 1000
println("map100 : $map100")
// ๊ฐ๋ณํ -> ๋ถ๋ณํ
val map200 = map100.toMap()
// ๋ถ๋ณํ์ด๋ฏ๋ก ์ค๋ฅ
//map200["key100"] = 1000
}
โช๏ธSet
ยท ๊ฐ์ฒด์ ์ด๋ฆ์ด๋ ์์ ๋ฑ์ผ๋ก ๊ด๋ฆฌํ๋ ์ฃผ์ฒด๊ฐ ์๋ ์ปฌ๋ ์ ์ด๋ค.
ยท ์ค๋ณต๋ ๊ฐ์ฒด๋ฅผ ๋ด์ ์ ์๋ค.
fun main() {
val set1 = setOf(1, 5, 10, 1, 5, 10)
println("set1 : $set1")
val set2 = mutableSetOf<Int>()
println("set2 : $set2")
// for๋ฌธ์ ํตํด ๊ฐ์ฒด๋ฅผ ์ํํด์ผ ํจ
for(item in set1) {
println("$item")
}
// ํฌ๊ธฐ
println("set1 : ${set1.size}")
// ์ถ๊ฐ๋ฅผ ํ ์ ์์ง๋ง ๊ฐ์ ๊ฐ์ฒด์ผ ๊ฒฝ์ฐ ์ถ๊ฐ๋์ง ์์
set2.add(10)
set2.add(20)
set2.addAll(listOf(30, 40, 50, 1, 5, 10))
println("set2 : $set2")
// ๊ฐ์ ํด๋นํ๋ ๊ฒ๋ง ์ญ์
set2.remove(5)
println("set2 : $set2")
// ๋ถ๋ณํ -> ๊ฐ๋ณํ, ๊ฐ๋ณํ -> ๋ถ๋ณํ ๋ณ๊ฒฝ์ List์ Map์ด๋ ๋๊ฐ์
// Set์ List๋ก, List๋ Set์ผ๋ก ์๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
}

'๐ฑ > ๐Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] ํจ์ํ ํ๋ก๊ทธ๋๋ฐ (0) | 2022.12.26 |
---|---|
[Kotlin] ๋ค์ํ ํด๋์ค (0) | 2022.12.20 |
[Kotlin] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2022.12.20 |
[Kotlin] ์ ์ด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ (0) | 2022.12.20 |
[Kotlin] ๊ธฐ๋ณธ ๋ฌธ๋ฒ (0) | 2022.12.20 |