slice

파라미터로 리스트를 전달해주고, 원본 list 에서, 파라미터로 받은 list 의 element 와 같은 인덱스의 값으로 된 리스트를 반환한다

public fun <T> List<T>.slice(indices: Iterable<Int>): List<T> {
    val size = indices.collectionSizeOrDefault(10)
    if (size == 0) return emptyList()
    val list = ArrayList<T>(size)
    for (index in indices) {
        list.add(get(index))
    }
    return list
}


val list = listOf(1, 2, 3, 4, 5)
println(list.slice(listOf(2, 4)))  // [3, 5]

Last updated