Kotlin

내일배움캠프 12.20 TIL

공부처음하는사람 2023. 12. 22. 20:57

ArrayList

Empty ArrayList

fun main() {
    val arrayList = ArrayList<String>()
    arrayList.add("One")
    arrayList.add("Two")
    println("......print ArrayList......")

    for (i in arrayList) {
        println(i)
    }
}
  • ArrayList는 immutable이라 var를 사용할 수 없다.
  • 다만 객체의 내용은 변경할 수 있다.

컬렉션을 사용하는 ArrayLIst

fun main() {
    val arrayList: ArrayList<String> = ArrayList<String>(5)
    val list: MutableList<String> = mutableListOf<String>()

    list.add("one")
    list.add("two")

    arrayList.addAll(list)

    println(".....print ArrayList....")

    val itr = arrayList.iterator()

    while (itr.hasNext()) {
        println(itr.next())
    }
    println("size of arrayList =" + arrayList.size)
}
  • MutableList를 만들어 ArrayLIst에 값을 추가했다.
  • iterator은 Set, List, Map에 저장된 값을 일관성있게 꺼내올 수 있다.

ArrayList Get

fun main(args: Array<String>) {
    val arrayList: ArrayList<String> = ArrayList<String>()
    arrayList.add("one")
    arrayList.add("Two")
    for (i in arrayList) {
        println(i)
    }
    println("......arrayList.get(1).......")
    println(arrayList.get(1))   // index 1에 접근하니 two가 출력된다.
}
  • .get에 index값을 입력하니 해당 인덱스의 아이템이 출력된다.

Lambda, 고차함수

fun main() {
    b(::a)  // 고차함수: 함수 b를 호출하되 함수a를 parameter로 넘겨주려면 콜론 2개
// 최종적으로 a라는 함수가 실행되면서 b가호출한 $str 함수a가 출력된다.
    val c: (String) -> Unit = { str -> println("$str 람다함수") }
    b(c) //람다 함수,
    // val c = { str: String -> println("$str 람다함수") } 라고 축약가능하다.
    // 함수를 변수로 사용가능한 장점이 있고, 컬렉션 조작, 스코프함수의 사용에 도움이 된다.
}

fun a(str: String) {
    println("$str 함수 a")
}

fun b(function: (String) -> Unit) {
    function("b가 호출한")
}
  • 함수를 변수로 사용이 가능하다.
  • 함수를 고차함수, 람다함수화 하는 과정을 잘 생각해보자

'Kotlin' 카테고리의 다른 글

내일배움캠프 12.21 TIL  (0) 2023.12.22
스코프 함수  (0) 2023.12.22
Set, Map  (0) 2023.12.22
리스트  (0) 2023.12.22
배열  (1) 2023.12.22