에르노트

코틀린 컬렉션 역순으로 뒤집기 reverse(), reversed(), reversedArray() 본문

Dev/Kotlin

코틀린 컬렉션 역순으로 뒤집기 reverse(), reversed(), reversedArray()

두콩 2020. 1. 29. 23:10
fun <T> Array<T>.reverse()
fun ByteArray.reverse()
fun ShortArray.reverse()
fun IntArray.reverse()
fun LongArray.reverse()
fun FloatArray.reverse()
fun DoubleArray.reverse()
fun BooleanArray.reverse()
fun CharArray.reverse()
fun <T> MutableList<T>.reverse()

자바에서 Collections 클래스의 reverse(list) 형태로 제공되었던 reverse() 함수가 코틀린에서는 확장 함수 형태로 제공된다. 따라서 Collections를 import 할 필요없이 사용하려는 Array 혹은 MutableList에서 바로 reverse()를 호출하면 그 객체 그대로 재배열된다.


fun <T> Array<out T>.reversed(): List<T>
fun ByteArray.reversed(): List<Byte>
fun ShortArray.reversed(): List<Short>
fun IntArray.reversed(): List<Int>
fun LongArray.reversed(): List<Long>
fun FloatArray.reversed(): List<Float>
fun DoubleArray.reversed(): List<Double>
fun BooleanArray.reversed(): List<Boolean>
fun CharArray.reversed(): List<Char>
fun <T> Iterable<T>.reversed(): List<T>

한편 기존 객체를 재배열하는 것이 아니라 아예 재배열된 새로운 객체를 반환하고 싶으면 reversed()를 이용하면 된다. 이때는 Array에서 호출했더라도 반환형은 List라는 것에 주의해야 한다.


fun <T> Array<T>.reversedArray(): Array<T>
fun ByteArray.reversedArray(): ByteArray
fun ShortArray.reversedArray(): ShortArray
fun IntArray.reversedArray(): IntArray
fun LongArray.reversedArray(): LongArray
fun FloatArray.reversedArray(): FloatArray
fun DoubleArray.reversedArray(): DoubleArray
fun BooleanArray.reversedArray(): BooleanArray
fun CharArray.reversedArray(): CharArray

그리고 Array에서 호출해서 다시 Array 형태로 반환받고 싶으면 reversedArray()를 이용하면 된다.






Comments