-
[Kotlin] List ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 23:36๋ฐ์ํ
- ์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค.
List
Array์ ๋์ผํ๊ฒ ์ธ๋ฑ์ค๋ฅผ ํตํด ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
Array๋ ํฌ๊ธฐ๊ฐ ์ ํด์ง๋ฉด ๋ณ๊ฒฝํ ์ ์์ง๋ง, List๋ ์ถ๊ฐ, ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
Kotlin์์๋ List๋ฅผ ์์ฑํ ๋ ํน์ง์ด ์๋๋ฐ ๋ถ๋ณํ ๋ฆฌ์คํธ์ ๊ฐ๋ณํ ๋ฆฌ์คํธ๊ฐ ์์ต๋๋ค. ๋ถ๋ณํ ๋ฆฌ์คํธ๋ ๊ฐ๋ณํ ๋ฆฌ์คํธ์ ๋นํด ์์ ์ ๊ทผํ๋ ์๋๊ฐ ์กฐ๊ธ ๋ ๋น ๋ฅด๊ณ ๊ฐ๋ณํ ๋ฆฌ์คํธ๋ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ ๋ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ธก๋ฉด์์๋ ๋จ์ด์ง๋ค๊ณ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ kotlin์์๋ List๋ฅผ ์ฌ์ฉํ ๋ ๋ณ๊ฒฝํด์ผํ ๊ฒฝ์ฐ์ ๋ถ๋ณํ ๋ฆฌ์คํธ๋ฅผ ๊ฐ๋ณํ ๋ฆฌ์คํธ๋ก ๋ณ๊ฒฝ ํ ๋ณ๊ฒฝ์ด ์๋ฃ๋๋ฉด, ๋ถ๋ณํ ๋ฆฌ์คํธ๋ก ๋ค์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
immutable List
fun main(){ val list1 = listOf(1,"2",3,'c') val list2 = listOf(1,2,3,4,5) val list3 = listOf("str1","str2","str3") println(list1) println(list2) println(list3) }
- immutable List๋ listOf() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์์ฑํ ์ ์๊ณ , ๋ค์ํ ํ์ ์ ๋์ ํ ์ ์์ต๋๋ค. Array์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ ์ ๋ช ์์ ์ผ๋ก ์ ๋ ฅ์ ํ๋ฉด, ๋ค์ด์ค๋ ๋ฐ์ดํฐ์ ํ์ ์ ์ ํ์ํฌ ์ ์์ต๋๋ค.
- ๋ํ, ์ถ๋ ฅํ๋ ๋ถ๋ถ์์ Array์ฒ๋ผ ํด์ฌ ๊ฐ์ด ๋์ค๋ ๊ฒ์ด ์๋ ๋ฆฌ์คํธ ๋ด ๋ค์ด์๋ ์์๋ค์ ๊ฐ์ ๋ฐ๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์๋ ์์ต๋๋ค.
mutable List
fun main(){ //val list1 = mutableListOf() // compile error val list1 = mutableListOf<Int>() val list2 = mutableListOf("str1","str2","str3") println(list1) println(list2) }
- mutable List๋ mutableListOf() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ ์ ์์ง๋ง, ๊ฐ์ ๋์ ํ์ง ์์ ๊ฒฝ์ฐ์๋ ํ์ ์ถ๋ก ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํ์ ์ ๋ช ์ํด์ผ ํฉ๋๋ค.
emptyList, listOfNotNull
fun main(){ val list1 = emptyList<Int>() val list2 = listOfNotNull(1,2,3,4,null, 5,6,7,null, 8) println(list1) // [] println(list2) // [1, 2, 3, 4, 5, 6, 7, 8] }
- emptyList๋ ๋น์ด ์๋ ๋ถ๋ณํ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- listOfNotNull์ list ๋ด null์ ์ ์ธํ๊ณ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
index ์ฌ์ฉ
fun main(){ val list1 = mutableListOf(1,2,3,4,5) println(list1[2]) // 3 println(list1.get(1)) // 2 list1[0] = -1 list1.set(1, -2) println(list1) // -1 -2 3 4 5 }
- list๋ index๋ฅผ ํตํด์ฌ ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ , getํจ์๋ฅผ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
- list์ ์์๋ฅผ ์ค์ ํ๊ธฐ ์ํด์๋ ๋ฌด์กฐ๊ฑด ๊ฐ๋ณํ ๋ฆฌ์คํธ๋ง ๊ฐ๋ฅํ๊ณ index, setํจ์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
Method
- indexOf : ์ฒ์๋ถํฐ ์์ ํ์ํ์ฌ ํด๋น ์์์ ๊ฐ์ ๊ฐ์ง๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ ํจ์
- lastIndexOf : ๋ง์ง๋ง ์์๋ถํฐ ํ์ํ์ฌ ํด๋น ์์์ ๊ฐ์ ๊ฐ์ง๋ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ ํจ์
fun main(){ val list1 = listOf(1,2,3,4,5,4,3,2,1) println(list1.indexOf(2)) // 1 println(list1.lastIndexOf(2)) // 7 }
- subList : ์ง์ ๋ ๋ฒ์์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ์ฌ ๋ฐํํ๋ ํจ์
fun main(){ val list1 = listOf(1,2,3,4,5,4,3,2,1) val list2 = list1.subList(1,3) // [2, 3] println(list2) }
- add(value) : ๊ฐ๋ณํ ๋ฆฌ์คํธ์ ์์๋ฅผ ์ถ๊ฐํ๋ ํจ์
- add(index, value) : ๊ฐ๋ณํ ๋ฆฌ์คํธ์ index ์์น๋ ์์๋ฅผ ์ถ๊ฐํ๋ ํจ์
- addAll(collection) : ๊ฐ๋ณ๋ น ๋ฆฌ์คํธ์ collection์ ์๋ ์์๋ค ๋ชจ๋๋ฅผ ์ถ๊ฐํ๋ ํจ์
fun main(){ val list1 = mutableListOf<Int>() list1.add(1) list1.add(2) list1.add(3) println(list1) // [1,2,3] list1.addAll(listOf(4,5,6)) println(list1) // [1,2,3,4,5,6] list1.add(1, -1) list1.add(1, -2) println(list1) // [1,-2,-1,2,3,4,5,6] }
- remove(value) : ๊ฐ๋ณํ ๋ฆฌ์คํธ์ ํด๋น ์์๋ฅผ ์ญ์ ํ๋ ํจ์
- removeAt(index) : ๊ฐ๋ณํ ๋ฆฌ์คํธ์์ index์ ํด๋นํ๋ ์์๋ฅผ ์ญ์ ํ๋ ํจ์
fun main(){ val list1 = mutableListOf<Int>(1,2,3,4,5) list1.remove(4) list1.remove(2) println(list1) // [1,3,5] list1.removeAt(0) println(list1) // [3,5] }
- set(index, value) : ๊ฐ๋ณํ ๋ฆฌ์คํธ์์ index์ ์์๋ฅผ ์ค์ ํ๋ ํจ์
๋ฆฌ์คํธ์ ๋ณ๊ฒฝ
toList : ๋ถ๋ณํ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด ๋ฐํํ๋ ํจ์
toMutableList : ๊ฐ๋ณํ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด ๋ฐํํ๋ ํจ์
Example์ ์๋ตํ๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฐ์ํ'Android > Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] Set ์ฌ์ฉ๋ฒ (0) 2021.08.13 [Kotlin] Map ์ฌ์ฉ๋ฒ (0) 2021.08.12 [Kotlin] String ์ฌ์ฉ๋ฒ (0) 2021.08.12 [Kotlin] Array ์ฌ์ฉ๋ฒ (0) 2021.08.12 [Kotlin] Functional Programming (0) 2021.08.11