KOTLIN 기본문법(4)

도니·2022년 9월 20일
0
post-thumbnail

🤍 KOTLIN 기본문법

🤍 변수와 함수

✅ 컬렉션 타입

Array : 배열 표현

- 배열은 Array 클래스로 표현

- 배열의 데이터에 접근할 때는 대괄호([])를 이용해도 되고, set()이나 get() 함수를 이용할 수도 있음

// 컬렉션 타입
// 배열 - Array
// 같은 타입의 변수들로 이루어진 집합
// 배열을 구성하는 각각의 값을 배열요소(element)라고 하고,
// 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 한다. 인덱스 값은 0부터 시작

// 배열생성 - 1.Array 생성자 사용
// 크기가 3인 배열을 생성하고, 각 값은 0으로 초기화
val array:Array<Int> = Array(3, {0})

기초 타입의 배열

- 기초 타입이라면 Array를 사용하지 않고 BooleanArray, ByteArray, CharArray, DoubleArray, FloatArray, IntArray, LongArray, ShortArray 클래스를 이용할 수 있음

// 배열생성 - 2.기초타입의 배열생성
// 기초타입명+Array(배열의 크기, 초기값설정)
val boolArray:BooleanArray = BooleanArray(4, {false})
val charArray:CharArray = CharArray(2, {'a'})

- arrayOf()라는 함수를 이용하면 배열을 선언할 때 값을 할당할 수 있음

- 기초 타입을 대상으로 하는 booleanArrayOf(), byteArrayOf(), charArrayOf(), doubleArrayOf(), floatArrayOf(), intArrayOf(), longArrayOf(), shortArrayOf() 함수를 제공

// AarryOf - 배열생성 함수
// 1. 기초타입 배열 생성
val intArray = intArrayOf(10, 20, 30, 40)
val boolArray2 = booleanArrayOf(true, false, true)

// 2. ArrayOf(element 설정) - 가장 편리한 배열 생성 방법
val strArray = arrayOf("abc", "de", "fg")
val intArray2 = arrayOf(1,2,3)

메인함수

// 배열에 접근할 때 - 대괄호[]를 이용하거나, set(), get() 함수를 이용한다.
fun main(){
    // 베열에 값 할당
    array[0] = 1
    array[1] = 2
    array.set(2, 3) // set(index, value)

    // 배열의 값을 확인
    println("${array[0]}, ${array[1]}, ${array.get(2)}")

    // 배열의 크기 확인
    println(array.size)

    println(boolArray)
    println(charArray)
    println(intArray)
    println(boolArray2)
}

List

- 순서가 있는 데이터 집합으로 데이터의 중복을 허용함

Set

- 순서가 없으며 데이터의 중복을 허용하지 않음

Map

- 키와 값으로 이루어진 데이터 집합으로 순서가 없으며 키의 중복은 허용하지 않음

- Map 객체는 키와 값으로 이루어진 데이터의 집합

- Map 객체의 키와 값은 Pair 객체를 이용할 수도 있고 '키 to 값' 형태로 이용할 수 있음

.
.
.

- Collection 타입의 클래스는 가변 클래스와 불변 클래스로 나뉨

- 불변 클래스는 초기에 데이터를 대입하면 더 이상 변경할 수 없는 타입

- 가변 클래스는 초깃값을 대입한 이후에도 데이터를 추가하거나 변경할 수 있음

// List, Set, Map
// List - 순서가 있다. 데이터 중복 허용
// Set - 순서가 없다. 데이터 중복 불가
// Map - key값과 value값으로 이루어진 데이터 집합, 순서가 없고, key 값은 중복 X

fun main() {
    // listOf - 불변
    var list = listOf<Int>(1,2,3)
    // list[0] = 4  -> listOf는 데이터 불변이기 때문에 문법에러 발생
    println("""
        list size : ${list.size}
        list data : ${list[0]}, ${list.get(1)}, ${list[2]}
    """.trimIndent())

    // mutableListOf - 가변
    var list2 = mutableListOf<Int>(1,2,3)
    list2[0] = 4
    list2.set(1, 5)
    list2.add(3, 6)
    println(list2)
    println(list2.get(0) + list2[1])

    // mutableset - 가변
    val set = mutableSetOf<Int>(5,6,7)
    set.add(5) //중복
    set.add(6) //중복
    set.add(8)
    println(set)

    // mutableMapOf - 가변
    var map = mutableMapOf<String, String>(Pair("first","1"), "second" to "2")
    map.put("three", "3") //map에 새로운 key, value 추가
    println(map)
    // key값이 first, second에 해당하는 value값을 추출한다.
    println(map.get("first") + map.get("second") + map.get("three"))
    println(map.keys)
    println(map.values)
}
profile
내가 보려고 만든 벨로그

0개의 댓글