[안드로이드 스튜디오 – 코틀린] 리스트 만들기 (listof / setof / mapof 활용)

0

코틀린을 활용한 불변 리스트 만들기

리스트의 종류는?

기존 파이썬에서는 빈 리스트 []를 생성하여 데이터를 넣으면 됐지만, 안드로이드 스튜디오의 코틀린은 3가지 방법으로 리스트를 만들어 사용한다. 오늘은 3가지 리스트를 주제로 이야기해 보려 한다.

1. listOf 활용

파이썬과 가장 유사하게 리스트를 만들 수 있다.

fun main(array: Array<String>) {
    val a = listOf<Int>(1, 2, 3, 3, 3)
    println(a)
}

listof의 뒤 뾰족 괄호<> 안에는 리스트의 형식(Int)을 작성한다. (작성하지 않아도 작동한다.) 그 뒤 괄호() 안에 데이터를 넣으면 된다.

출력값 [1, 2, 3, 3, 3]

2. setOf 활용

listOf와 비슷하게 생겼지만 차이점이 있다. setOf의 특징은 중복된 데이터를 출력하지 않는다.

fun main(array: Array<String>) {
    val b = setOf<Int>(1, 2, 3, 3, 3)
    println(b)
}

위 데이터에는 “3”이 3번 들어갔지만, listOf와 다르게 setOf는 “3”을 1회만 출력한다.

출력값 [1, 2, 3]

3. mapOf 활용

mapOf는 list / set 과는 조금 다르다. 우선 2가지를 선언해야 하며 이를 key 와 value로 명한다.

fun main(array: Array<String>) {
    val c = mapOf<String, Int>("first" to 1, "second" to 2")
    println(c)
}

“first”는 key 위치에 있으며 문자를 나타내는 String을 선언하였고, “1”은 value 위치에 있으며 정수를 나타내는 Int를 선언하였다.

출력값 {first=1, second=2}

코틀린을 활용한 가변 리스트 만들기

가변 리스트는?

위 3가지 불변 리스트는 값을 추가 / 삭제 / 변형이 불가능하다. 하지만 우리가 프로그램을 사용하기 위해서는 여러 번의 수정이 필요하다. 그래서 필요한 리스트가 가변(mutable) 리스트이다.

1. mutableListOf 활용

사용법은 위 ListOf와 동일하다. 하지만 데이터 추가, 수정 및 삭제가 가능하다.

fun main(array: Array<String>) {

    var a = mutableListOf<Int>(1,2,3,4)
    a.add(4)
    println(a)

    a.add(2,100)
    println(a)

    a.set(0,0)
    println(a)

    a.removeAt(5)
    println(a)

    a.sort()
    println(a)

    a.remove(100)
    println(a)
}

결괏값

[1, 2, 3, 4, 4]
[1, 2, 100, 3, 4, 4]
[0, 2, 100, 3, 4, 4]
[0, 2, 100, 3, 4]
[0, 2, 3, 4, 100]
[0, 2, 3, 4]
  1. 위 결과를 보면 add의 경우 가장 우측에 값이 추가된다. 파이썬의 append()와 같은 역할.
  2. 만약 add(2, 100)의 경우 2번째 위치에 “100”이 추가된다.
  3. 데이터를 다른 값으로 대체하고 싶으면 set(0,0)을 활용하면 되는데, 0번째에 있었던 “1”을 “0”으로 변경하였다.
  4. 이외에도 removeAt()을 활용하면 원하는 순번의 값을 삭제 가능하다.
  5. sort()를 이용한 정렬도 가능.
  6. 마지막으로 remove()를 이용하면 원하는 특정값을 지울 수 있다.

2. mutableSetOf 활용

mutableSetOf는 데이터 추가는 가능하지만, 정렬을 바꾸거나 원하는 위치에 데이터 삽입은 불가능하다.

fun main(array: Array<String>) {
    var b = mutableSetOf<Int>(1,2,3)
    println(b)

    b.add(6)
    println(b)

    b.remove(6)
    println(b)
}

결괏값

[1, 2, 3]
[1, 2, 3, 6]
[1, 2, 3]

3. mutableMapOf 활용

mutableMapOf의 경우 사용법이 조금은 다르다. 데이터를 “추가” 또는 “변경”하기 위해서는 “put”과 “replace”를 사용하여야 한다.

fun main(array: Array<String>) {
    val c = mutableMapOf<String, Int>("first" to 1)
    println(c)

    c.put("second", 2)
    println(c)

    c.replace("second", 11)
    println(c)

    println(c.keys)
    println(c.values)

    c.clear()
    println(c)
}

결괏값

{first=1}
{first=1, second=2}
{first=1, second=11}
[first, second]
[1, 11]
{}
  1. keys와 values를 각각의 리스트에 넣은 데이터를 출력 할수 있으며
  2. clear()를 사용해 모든 값의 삭제도 가능하다.

회신을 남겨주세요

귀하의 의견을 입력하십시오!
여기에 이름을 입력하십시오.