티스토리 뷰

코틀린

코틀린 문법(배열)

pjm1n 2024. 8. 19. 23:13

❓채팅방 대화내용 리스트 UI를 구현하는 중에 listOf와 mutableListOf, Array의 차이를 명확히 몰라서 정리했다.

 

📌 listOf와 Array의 차이

1. 크기

  • Array: 고정 크기를 가집니다. 배열을 생성할 때 크기를 정해야 하며, 이후에는 크기를 변경할 수 없습니다.
  • listOf: 고정된크기를 가집니다. 리스트를 생성할 때 요소의 수에 따라 초기화됩니다.

2. 가변성

  • Array: 요소를 직접 수정할 수 있습니다. 인덱스를 통해 접근하여 값을 변경할 수 있습니다.
  • listOf: 불변 리스트이므로, 생성된 후에는 요소를 추가하거나 삭제할 수 없고, 수정할 수도 없습니다.

3. 데이터 타입

  • Array: 동일한 타입의 요소만 저장할 수 있습니다. 예를 들어, Array<Int>는 정수만 저장할 수 있습니다.
  • listOf: 다양한 타입의 요소를 저장할 수 있는 List<Any> 형태로 사용할 수 있습니다. 하지만 각 요소는 같은 타입이어야 합니다.

4. 메서드 및 기능

  • Array: 기본적인 배열 기능만 제공됩니다.
  • listOf: 다양한 메서드와 기능을 제공하여 리스트에 대한 조작이 가능합니다. 하지만 불변 리스트이므로 요소의 추가, 삭제, 수정은 불가능합니다.
fun main() {
    // Array 예시
    val array = arrayOf(1, 2, 3) // 정수 배열
    array[0] = 10 // 수정 가능
    println(array.joinToString()) // 출력: 10, 2, 3

    // listOf 예시
    val list = listOf(1, 2, 3) // 불변 리스트
    // list[0] = 10 // 오류 발생: 리스트의 요소 수정 불가
    println(list.joinToString()) // 출력: 1, 2, 3
}

 

📌 listOf와 mutablelistOf 차이

1. 가변성과 불변성

  • listOf:불변 리스트를 생성합니다. 즉, 리스트가 생성된 후에는 요소를 추가, 삭제 또는 수정할 수 없습니다.예를 들어, 리스트의 내용을 변경하려고 하면 컴파일 오류가 발생합니다.
  • mutableListOf:가변 리스트를 생성합니다. 즉, 생성 후에도 요소를 자유롭게 추가, 삭제 및 수정할 수 있습니다.가변 리스트는 다양한 메서드를 제공하여 리스트를 조작할 수 있습니다.
//listof 사용예시

val immutableList = listOf(1, 2, 3)
// immutableList.add(4) // 오류: 불변 리스트에 요소 추가 불가
// immutableList[0] = 10 // 오류: 불변 리스트의 요소 수정 불가
println(immutableList) // 출력: [1, 2, 3]
//mutableListOf 사용 예시

val mutableList = mutableListOf(1, 2, 3)
mutableList.add(4) // 요소 추가 가능
mutableList[0] = 10 // 요소 수정 가능
println(mutableList) // 출력: [10, 2, 3, 4]

2. 성능

  • listOf: 리스트가 변경되지 않기 때문에 더 안전하고, 불변의 특성 덕분에 여러 스레드에서 안전하게 사용할 수 있습니다.
  • mutableListOf: 요소를 추가하거나 삭제할 수 있어 유연성이 있지만, 그만큼 관리가 필요합니다.

'코틀린' 카테고리의 다른 글

디미터의 법칙  (0) 2025.03.30
코틀린 문법(Sealed Interface)  (0) 2025.03.30
Kotlin에서 property, JAVA에서의 field와 property  (0) 2024.08.05
코틀린 문법(OOP문법)  (0) 2024.08.04
코틀린 문법(변수)  (0) 2024.08.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
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
글 보관함