코틀린의 Collections
C++에 STL이 있다면 Java에는 Collections가 있다.
Java와 완벽 호환된다는 코틀린은 Collections를 어떻게 지원하는 지 알아보자.
아래와 같은 간단한 코드로 HashSet
객체를 만들 수 있다.
1 | val set = hashSetOf(1, 7, 53) |
비슷한 방법으로 List
나 Map
도 만들 수 있다.
1 | val list = arrayListOf(1, 7, 53) |
참고 위의 코드에서
to
는 일반 함수이다.
코틀린의 Collections를 통해 생성되는 객체의 클래스는 아래와 같은 방법으로 추측할 수 있다.
1 | >>> println(set.javaClass) |
참고 위의 코드에서
javaClass
는 Java의getClass()
메소드에 해당한다.
위의 출력에서 알 수 있듯, 코틀린은 표준 Java Collections를 사용하고 있음을 알 수 있다.
반대로 설명하면 코틀린은 독자적인 Collections를 가지고 있지 않다는 것이며, Java로 작성된 코드와의 상호 작용이 좀 더 수월해짐을 뜻한다.
다만, 코틀린에서 Collections를 사용하게 되면 Java에서 제공하는 기능보다 더욱 많은 기능을 사용할 수 있다.
예를 들어, 숫자들 중 최대값을 찾거나, 리스트의 마지막 요소를 가져온다거나 하는 것으로 아래 코드를 통해 확인할 수 있다.
1 | >>> val strings = listOf("first", "second", "fourteenth") |