코틀린의 자료형

이진우·2024년 1월 1일
0

코틀린

목록 보기
1/1

코틀린은 자료형에 대해 명시적으로 선언할 수도 있고, 타입 추론을 통해 생략할 수도 있습니다.

코틀린의 자료형은 기본형과 참조형으로 구분할 수 있습니다. 기본형은 정수, 실수, 문자, 불리언 등의 원시 타입을 의미하며, 참조형은 배열, 컬렉션, 클래스, 인터페이스 등의 객체 타입을 의미합니다.

🚄배열 생성 함수

  • arrayListOf는 수정 가능한 리스트를 생성하는 함수입니다. 내부적으로는 배열로 데이터를 저장하는 ArrayList 클래스를 사용합니다. arrayListOf 함수는 매개변수로 임의의 개수의 값을 받아서 리스트에 추가합니다. arrayListOf 함수로 생성된 리스트는 add, remove, set 등의 메소드로 요소를 추가하거나 삭제하거나 변경할 수 있습니다.
  • listOf는 읽기 전용 리스트를 생성하는 함수입니다. listOf 함수는 매개변수로 임의의 개수의 값을 받아서 리스트에 추가합니다. listOf 함수로 생성된 리스트는 읽기 전용이기 때문에 요소를 추가하거나 삭제하거나 변경할 수 없습니다. 만약 수정 가능한 리스트를 생성하고 싶다면 mutableListOf 함수를 사용할 수 있습니다.
  • arrayOf는 배열을 생성하고 초기화하는 함수입니다. arrayOf 함수는 매개변수로 임의의 개수의 값을 받아서 배열에 저장합니다. arrayOf 함수로 생성된 배열은 대괄호를 사용해서 인덱스로 요소에 접근하거나 변경할 수 있습니다. 배열의 크기는 생성 시에 결정되며, 요소를 추가하거나 삭제할 수 없습니다. 만약 배열의 크기가 정해지지 않은 경우에는 arrayOfNulls 함수를 사용할 수 있습니다.
fun main(args: Array<String>) {
    val arr: ArrayList<Int> = arrayListOf<Int>()
    arr.add(3)
    arr.add(5)
    arr.add(5)
    arr[1] = 4
    println(arr)
//    output: [3, 4, 5]

    val lis: List<Int> = listOf<Int>(244, 222, 111)
//    lis.add X 추가 불가
//    lis.set X 수정 불가
//    lis[2] = 55 X 수정 불가
    println(lis)
//    output: [233, 222, 111]

    val arra: Array<Int> = arrayOf<Int>(11, 11, 22)
//    arra.add 추가 불가
    arra[1] = 4
    println(arra[0])
    println(arra[1])
    println(arra[2])
    println(arra.size)
//    output: 11
//            4
//            22
//            3
}

코틀린에서 MutableList와 ArrayList는 둘 다 수정 가능한 리스트를 생성하는 함수입니다. 하지만 MutableList는 인터페이스이고, ArrayList는 클래스입니다1. MutableList는 ArrayList 외에도 다른 구현체를 가질 수 있습니다. 예를 들어, LinkedList도 MutableList의 구현체입니다2. ArrayList는 내부적으로 배열로 데이터를 저장하고, LinkedList는 노드로 데이터를 저장합니다3. 따라서 두 클래스는 추가, 삭제, 검색 등의 연산에 대한 성능 차이가 있습니다3.

MutableList와 ArrayList의 차이점을 요약하면 다음과 같습니다:

  • MutableList는 인터페이스이고, ArrayList는 클래스입니다.
  • MutableList는 ArrayList 외에도 다른 구현체를 가질 수 있습니다.
  • ArrayList는 내부적으로 배열로 데이터를 저장하고, LinkedList는 노드로 데이터를 저장합니다.
  • ArrayList와 LinkedList는 추가, 삭제, 검색 등의 연산에 대한 성능 차이가 있습니다.
fun main(args: Array<String>) {
    val arr: ArrayList<Int> = arrayListOf<Int>()
    arr.add(3)
    arr.add(5)
    arr.add(5)
    arr[1] = 4
    println(arr)
//    output: [3, 4, 5]
    val mutLis: MutableList<Int> = mutableListOf<Int>()
    mutLis.add(10)
    mutLis.add(9)
    mutLis.add(8)
    mutLis[1] = 0
    println(mutLis)
//    output: [10, 0, 8]
}

🛎코틀린 컬렉션 인터페이스

  • 컬렉션은 List, Set, Map 등의 인터페이스로 표현되며, 각각 순서가 있는 원소의 집합, 중복이 없는 원소의 집합, 키와 값의 쌍의 집합을 나타냅니다.
  • 컬렉션은 변경 가능한(mutable) 컬렉션과 변경 불가능한(immutable) 컬렉션으로 구분할 수 있습니다. 변경 가능한 컬렉션은 원소를 추가하거나 삭제하거나 수정할 수 있으며, 변경 불가능한 컬렉션은 한 번 생성된 후에는 원소를 변경할 수 없습니다.
  • 컬렉션을 생성하는 방법에는 listOf, setOf, mapOf 등의 함수와 mutableListOf, mutableSetOf, mutableMapOf 등의 함수가 있습니다. 전자는 변경 불가능한 컬렉션을 생성하고, 후자는 변경 가능한 컬렉션을 생성합니다.
profile
언젠가 보게 된다. 기록하자 😡🔥🔥

0개의 댓글