일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- numpy
- Python
- math
- matplotlib
- gas
- string
- Apache
- Google Excel
- GIT
- Github
- Kotlin
- Java
- dataframe
- PySpark
- SQL
- PostgreSQL
- hive
- Google Spreadsheet
- 파이썬
- array
- c#
- list
- django
- Redshift
- Tkinter
- Mac
- PANDAS
- google apps script
- Excel
- Today
- Total
달나라 노트
Kotlin - List 본문
Original source = play.kotlinlang.org/byExample/01_introduction/01_Hello%20world
Kotlin에서도 python처럼 List라는 것이 존재합니다.
여러 요소들을 하나로 묶어서 나타내주는 것이며 순서가 존재합니다.
다만 Kotlin에서는 두 가지 종류의 list가 존재합니다.
MutableList = 변경(요소 추가 제거 등)이 가능한 list
List = 변경이 불가하고 읽기만 가능한 list
List를 생성할 때는 내장 method를 사용해야하는데 어떤 Method를 사용하는지에 따라 Mutable list인지 read-only List인지가 결정됩니다.
mutableListOf() -> mutable list 생성
listOf() -> read-only List 생성
val list_colors: MutableList<String> = mutableListOf("Blue", "Black", "White", "White") // 1
val list_colors_2: List<String> = list_colors // 2
val list_numbers: List<Int> = listOf(1, 2, 3, 2) // 3
fun getlistnumbers(): List<Int> { // 4
return list_numbers
}
fun getlistcolors(): MutableList<String> { // 4
return list_colors
}
fun main() {
println(list_colors)
println(list_colors_2)
println(list_numbers)
println(list_colors[0]) // 5
println(list_colors_2[1])
println(list_numbers[2])
list_colors.add("Sky") // 6
println(list_colors) // 7
// list_colors_2.add("Red") // Error 발생 // 8
// list_numbers.add(4) // Error 발생 // 8
println(getlistnumbers())
println(getlistcolors())
}
-- Result
[Blue, Black, White, White]
[Blue, Black, White, White]
[1, 2, 3, 2]
Blue
Black
3
[Blue, Black, White, White, Sky]
[1, 2, 3]
[Blue, Black, White, White, Sky]
위 예시를 봅시다.
1. list_colors라는 변수에 Mutable List를 생성하고 있습니다. Mutable list생성 시 변수의 자료형은 MutableList라고 적어줘야 하며 해당 List의 요소로서 어떤 자료형이 들어갈지를 <>안에 명시해줘야 합니다. MutableList<String>은 Mutable List를 만들며 요소는 String이 들어갈 것이라는 뜻이죠.,
2. list_color_2 변수에 바로 이전에 생성한 list_colors를 할당하고 있습니다. 근데 list_colors_2변수는 MutableList가 아닌 그냥 List입니다. 즉, Mutable List를 할당받아도 받은 변수의 type이 List라면 할당받은 list_colors_2는 read-only list가 됩니다.
3. list_numbers라는 변수에 listOf method를 이용하여 List를 할당하고 있습니다. 다만 listOf method를 사용하였고, type을 List<Int>로 명시하였으니 read-only list이며 요소들은 Int 데이터가 들어갈 것을 알 수 있습니다.
4. function에서 list를 return할 경우 return type은 해당 list의 타입과 동일하게 적어주면 됩니다.
5. indexing을 이용해 list의 어떤 요소를 얻을 수 있습니다.
6. add method는 list에 새로운 요소를 추가해줍니다.
7. Sky라는 요소가 추가된 것을 출력해줍니다.
8. list_colors_2, list_numbers는 read-only list이므로 add가 불가능합니다.
* 참고
List는 중복값이 존재할 수 있습니다.
fun main() {
var list_empty = emptyList<Any>()
println(list_empty)
}
-- Result
[]
비어있는 list는 위처럼 emptyList를 이용하여 생성할 수 있습니다.
아래 코드는 위에서 본 내용을 토대로 작성한 추가 예시입니다.
코드를 천천히 읽으면서 이해해보면 좋을 것 같습니다.
fun main() {
var list_mutable: MutableList<Any> = mutableListOf(1, 2, 3, 4, 5, 5, "Test")
var list_immutable: List<Int> = listOf("One", "Two", "Three", "Three")
fun show_mutable_list(x: MutableList<Any>) {
for (i in x) {
println(i)
}
}
fun show_immutable_list(x: List<String>) {
for (i in x) {
println(i)
}
}
println(list_mutable)
println(list_immutable)
show_mutable_list(list_mutable)
show_immutable_list(list_immutable)
}
-- Result
[1, 2, 3, 4, 5, Test]
[One, Two, Three, Three]
1
2
3
4
5
5
Test
One
Two
Three
Three
Original source = play.kotlinlang.org/byExample/01_introduction/01_Hello%20world
Kotlin에서도 python처럼 List라는 것이 존재합니다.
여러 요소들을 하나로 묶어서 나타내주는 것이며 순서가 존재합니다.
다만 Kotlin에서는 두 가지 종류의 list가 존재합니다.
MutableList = 변경(요소 추가 제거 등)이 가능한 list
List = 변경이 불가하고 읽기만 가능한 list
List를 생성할 때는 내장 method를 사용해야하는데 어떤 Method를 사용하는지에 따라 Mutable list인지 read-only List인지가 결정됩니다.
mutableListOf() -> mutable list 생성
listOf() -> read-only List 생성
val list_colors: MutableList<String> = mutableListOf("Blue", "Black", "White", "White") // 1
val list_colors_2: List<String> = list_colors // 2
val list_numbers: List<Int> = listOf(1, 2, 3, 2) // 3
fun getlistnumbers(): List<Int> { // 4
return list_numbers
}
fun getlistcolors(): MutableList<String> { // 4
return list_colors
}
fun main() {
println(list_colors)
println(list_colors_2)
println(list_numbers)
println(list_colors[0]) // 5
println(list_colors_2[1])
println(list_numbers[2])
list_colors.add("Sky") // 6
println(list_colors) // 7
// list_colors_2.add("Red") // Error 발생 // 8
// list_numbers.add(4) // Error 발생 // 8
println(getlistnumbers())
println(getlistcolors())
}
-- Result
[Blue, Black, White, White]
[Blue, Black, White, White]
[1, 2, 3, 2]
Blue
Black
3
[Blue, Black, White, White, Sky]
[1, 2, 3]
[Blue, Black, White, White, Sky]
위 예시를 봅시다.
1. list_colors라는 변수에 Mutable List를 생성하고 있습니다. Mutable list생성 시 변수의 자료형은 MutableList라고 적어줘야 하며 해당 List의 요소로서 어떤 자료형이 들어갈지를 <>안에 명시해줘야 합니다. MutableList<String>은 Mutable List를 만들며 요소는 String이 들어갈 것이라는 뜻이죠.,
2. list_color_2 변수에 바로 이전에 생성한 list_colors를 할당하고 있습니다. 근데 list_colors_2변수는 MutableList가 아닌 그냥 List입니다. 즉, Mutable List를 할당받아도 받은 변수의 type이 List라면 할당받은 list_colors_2는 read-only list가 됩니다.
3. list_numbers라는 변수에 listOf method를 이용하여 List를 할당하고 있습니다. 다만 listOf method를 사용하였고, type을 List<Int>로 명시하였으니 read-only list이며 요소들은 Int 데이터가 들어갈 것을 알 수 있습니다.
4. function에서 list를 return할 경우 return type은 해당 list의 타입과 동일하게 적어주면 됩니다.
5. indexing을 이용해 list의 어떤 요소를 얻을 수 있습니다.
6. add method는 list에 새로운 요소를 추가해줍니다.
7. Sky라는 요소가 추가된 것을 출력해줍니다.
8. list_colors_2, list_numbers는 read-only list이므로 add가 불가능합니다.
* 참고
List는 중복값이 존재할 수 있습니다.
fun main() {
var list_empty = emptyList<Any>()
println(list_empty)
}
-- Result
[]
비어있는 list는 위처럼 emptyList를 이용하여 생성할 수 있습니다.
아래 코드는 위에서 본 내용을 토대로 작성한 추가 예시입니다.
코드를 천천히 읽으면서 이해해보면 좋을 것 같습니다.
fun main() {
var list_mutable: MutableList<Any> = mutableListOf(1, 2, 3, 4, 5, 5, "Test")
var list_immutable: List<Int> = listOf("One", "Two", "Three", "Three")
fun show_mutable_list(x: MutableList<Any>) {
for (i in x) {
println(i)
}
}
fun show_immutable_list(x: List<String>) {
for (i in x) {
println(i)
}
}
println(list_mutable)
println(list_immutable)
show_mutable_list(list_mutable)
show_immutable_list(list_immutable)
}
-- Result
[1, 2, 3, 4, 5, Test]
[One, Two, Three, Three]
1
2
3
4
5
5
Test
One
Two
Three
Three
'Kotlin' 카테고리의 다른 글
Kotlin - Map collection (0) | 2021.03.15 |
---|---|
Kotlin - Set (0) | 2021.03.15 |
Kotlin - Loops (0) | 2021.03.15 |
Kotlin - when 구문 (0) | 2021.03.15 |
Kotlin - Inheritance (상속) (0) | 2021.03.15 |