달나라 노트

Kotlin - List 본문

Kotlin

Kotlin - List

CosmosProject 2021. 3. 15. 03:47
728x90
반응형

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'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
Comments