포스트

[Kotlin] list

play.kotlinlang.org

코틀린 코드를 연습해볼 수 있는 공식사이트


kotlin v1.9.10 으로 작성됨

Collection에는 List, Map, Set 등이 있다 Collection은 크게 Mutable과 immutable으로 구분된다

Mutable - read & write immutable - read only

array 바로가기

arraylist 바로가기

1. list

코틀린의 List는 기본적으로 immutable으로 읽기 전용으로 배열안의 내용을 수정할 수 없다

하지만 mutable로 선언할 경우 값을 변경할 수 있다

val로 초기화할 경우 재할당은 불가능하지만 추가,삭제 등은 가능하다

2. list 생성

1
2
3
4
5
6
val lst1 = listOf(0, 1, 2)
val lst2 = List(3,  {i -> i})

// mutable로 생성
val lst3 = mutableListOf<Int>(0, 1, 2)
val lst4 = MutableList<Int>(3, {i -> i})

3. list 접근

1
2
3
4
5
6
7
val lst = listOf(3, 4, 5)

// 인덱싱
lst[0]  // 3

// 슬라이싱
lst.subList(1, 3) // [4, 5]

4. list 출력

1
2
val lst = listOf(3, 4, 5)
print(lst)  // [3, 4, 5]

list는 print를 사용해 직접 출력이 가능하다

5. list 함수

수정,삭제 함수는 mutableList만 가능하다


5.1. add()

: list에 값 추가

1
2
3
4
5
6
7
8
9
10
11
val mlst = mutableListOf<Int>(0, 1, 2)
val lst = listOf<Int>(7, 8, 9)

mlst.add(3)    // 0 1 2 3
// 1번 index에 6 추가
mlst.add(1, 6) // 0 6 1 2


mlst.addAll(lst)   // 0 1 2 7 8 9
// 2번 index에 추가
mlst.addAll(2, lst) // 0 1 7 8 9 2

5.2. remove()

: list에 값 제거(index 기준)

1
2
3
4
5
6
7
8
9
val mlst = mutableListOf<Int>(1 ,2 ,3) // 1 2 3
val lst = listOf<Int>(2, 3, 4)         // 2 3 4
mlst.remove(2) // 1 3
mlst.removeAt(0) // 2 3    1번 인덱스 제거

// lst와 공집합 제거
mlst.removeAll(lst)  // 1

lst.clear()  // 리스트 비우기

remove는 해당 값을 찾아 삭제하고 true를 반환한다

해당하는 값이 없으면 false를 반환한다

5.3. clear()

: list 모든 값 제거

1
lst.clear()  //

5.4. retainAll()

: 두 리스트의 공집합

1
2
3
4
val mlst = mutableListOf<Int>(1 ,2 ,3) // 1 2 3
val lst = listOf<Int>(2, 3, 4)         // 2 3 4

mlst.retainAll(lst)  // 2 3

5.5. subList()

: 두 인덱스값 사이으로 부분 리스트

1
2
3
val mlst = mutableListOf<Int>(1 ,2 ,3, 4)

mlst.subList(1, 3)  // 2 3

참고자료

kotlin collections 공식문서


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.