KOTLIN

코틀린(Kotlin) 배열 & 컬렉션

사과씨앗 2020. 12. 27. 13:46
728x90
반응형

안녕하세요 이번 글에서는 코틀린의 배열과 컬렉션의 사용방법을 알아보겠습니다.

 

1. Array

 

Array는 변수를 선언할 때 크기를 지정해주어야 하고 한번 정해진 크기는 변경할 수 없다는 특징을 가지고 있습니다.

 

    var IntArray    = IntArray(10)
    var longArray   = LongArray(10)
    var DoubleArray = DoubleArray(10)
    var CharArray   = CharArray(10)
    var StringArray = Array(10,{item->""})    

위 코드처럼 선언 시 배열의 크기와 타입을 지정하여 줄 수 있습니다. 자바의 int [] intArray = new int [10]과 같다고 보시면 됩니다.

 

    //배열 선언시 값을 할당하여 크기를 지정할수도 있습니다
    var IntArray    = arrayOf(1,2,3,4,5,6)
    var StringArray = arrayOf("1","2","3","사","오")
    
    //배열의 값을 변경하는 방법
    IntArray[0] = 10
    IntArray.set(0, 10) 
    
    //배열의 값을 꺼내는 방법
    print(IntArray[1])
    print(IntArray.get(0))

arrayOf를 사용하여 선언 시 대입하여 크기를 지정해줄 수도 있습니다.

 

 

코틀린에서는 크게 두 가지 컬렉션이 있습니다. 값과 크기의 변경이 가능한 Mutable 컬렉션, 변경이 불가능한 컬렉션입니다.

 Mutable 컬렉션 같은 경우는 선언 시 자료형 압에 Mutable을 접두어로 선언하여 줍니다.

 

2. List

 

 //비어있는 리스트를 만들기 위해서는 제네릭을 이용하여 타입을 선언할 수 있습니다.
    var list = mutableListOf<Int>()

    //선언시 배열과 같이 값을 바로 선언할 수 있습니다.
    var list2 = mutableListOf("일","이","삼","사")

    //add를 사용하여 값을 추가
    list.add(1)
    list2.add("오")

    //set 또는 []를 이용여 수정이 가능합니다.
    list.set(0,10)
    list2.set(0,"열")

    //removeAt을 이용하여 삭제가 가능합니다.
    //삭제시 해당인덱스 번호의 값이 삭제되며 바로뒤에 있는 값이 그 자리로 들어옵니다.
    list2.removeAt(1)
   
    //size를 사용하여 크기를 가져올 수 있습니다.
    list.size

 

3. Set

 

set 같은 경우는 List와 유사하지만 가장 큰 차이점은 중복을 허용하지 않고 인덱스로 조회할 수 없으며 get 함수도 지원하지 않습니다.

 

    //비어있는 set을 선언할시 List와 동일합니다.
    var set = mutableSetOf<String>()

    //선언시 배열과 같이 값을 바로 선언할 수 있습니다.
    var set2 = mutableSetOf("안","녕","하","세","요")

    //add를 사용하여 값을 추가
    set2.add("안") // <-- 중복되는 값이 존재하기 때문에 추가되지 않는다.
    set2.add("Hi")
    
    //set2.set() <-- set() 함수는 인덱스를 지원하지 않아 사용할 수 없습니다.

 

4. Map

 

map의 경우 키(key)와 값(value)이 한쌍으로 만들어진 것을 말합니다.

 

    //비어있는 map 생성
    var map = mutableMapOf<String,String>()

    //Pair 함수를 사용하여 값을 바로 추가할 수 있습니다.
    var map2 = mutableMapOf(Pair("이름","사과씨앗"),Pair("나이","안알랴줌"))

    //put을 이용하여 값을 추가하거나 동일한 키가 있을시 수정합니다.
    map2.put("직업","쪼렙 개발자")

    //get함수에 키값을 이용하여 맵의값을 가져옵니다.
    print("직업 : ${map2.get("직업")} 이름 : ${ map2.get("이름")}")

    //remove를 사용하여 삭제합니다.
    map2.remove("직업")
    

 

5. Immutable 

 

이뮤터블 컬렉션 같은 경우는 컬렉션 선언 시 mutable을 제외하고 선언하면 됩니다.

이뮤터블은 값의 수정이나 컬렉션의 크기 수정이 불가능하기 때문에 변하지 않는 상수, 고정값 등을 사용할 때 쓰입니다.

 

오늘도 봐주셔서 감사합니다^^

728x90
반응형