개발 일기

List Specific Operations 본문

컴퓨터 언어/kotlin

List Specific Operations

이건욱

List는 Kotlin에서 가장 유명한 타입입니다. 

Index에 접근이 가능한 List는 다양한 강력한 기능들을 제공합니다.

Retrieving elements by index

Index에 대해서 검색하는 방법은 elementAt() , first() , lat() 혹은 Retrieving Single Elements.

만약에 몇 번 Index인지 알고 있는 경우에는 "[index]" or get() 함수를 통해서 찾을 수가 있습니다.

 

더 안전한 방법으로 가져오기 위에서는 "getOrElse()" or "getOrNull()" 함수를 통해 가져올 수가 있습니다.

 

getOrElse()

해당 Index를 가져올 때 해당 Index가 없을 경우에 기본 값을 제공할수가 있습니다.

 

getOrNull()

해당 Index를 가져올 때 해당 Index가 없을 경우에 Null을 반환 합니다. 

val numbers = listOf(1, 2, 3, 4)
println(numbers.get(0))
println(numbers[0])
//numbers.get(5)                         // exception!
println(numbers.getOrNull(5))             // null
println(numbers.getOrElse(5, {it}))        // 5

1
1
null
5

 

List에서 부분적으로 가져오고 싶을 때 subList() 함수를 제공합니다.

val numbers = (0..13).toList()
println(numbers.subList(3, 6))

Finding element positions

element 값으로 List에 해당 Index을 알고싶은 경우에는 indexOf() and lastIndexOf()을 사용할수가 있습니다.

값이 없을 경우에는 -1을 Return 합니다.

val numbers = listOf("1", "2", "3", "4", "5", "6")
println(numbers.indexOf("2"))
println(numbers.lastIndexOf("2"))

indexOfFirst() 첫번째로 매칭 된 element index을 반환합니다. 못 찾을 경우 -1을 반환 합니다.

indexOfLast() 마지막으로 매칭된 element index을 반환합니다. 못 찾을 경우 -1을 반환 합니다.

val numbers = mutableListOf(1, 2, 3, 4)
println(numbers.indexOfFirst { it > 2})
println(numbers.indexOfLast { it % 2 == 1})

List write operations

Adding

val numbers = mutableListOf("one", "five", "six")
numbers.add(1, "two")
numbers.addAll(2, listOf("three", "four"))
println(numbers)

Updating

val numbers = mutableListOf("one", "five", "three")
numbers[1] =  "two"
println(numbers)

전체의 모든 값을 변경하고 싶은 경우에는 "fill()" 함수를 사용할수가 있습니다.

val numbers = mutableListOf(1, 2, 3, 4)
numbers.fill(3)
println(numbers)

Removing

val numbers = mutableListOf(1, 2, 3, 4, 3)    
numbers.removeAt(1)
println(numbers)

Sorting

val numbers = mutableListOf("one", "two", "three", "four")

numbers.sort()
println("Sort into ascending: $numbers")
numbers.sortDescending()
println("Sort into descending: $numbers")

numbers.sortBy { it.length }
println("Sort into ascending by length: $numbers")
numbers.sortByDescending { it.last() }
println("Sort into descending by the last letter: $numbers")

numbers.sortWith(compareBy<String> { it.length }.thenBy { it })
println("Sort by Comparator: $numbers")

numbers.shuffle()
println("Shuffle: $numbers")

numbers.reverse()
println("Reverse: $numbers")

'컴퓨터 언어 > kotlin' 카테고리의 다른 글

Map Specific Operations  (0) 2020.06.11
Set Specific Operations  (0) 2020.06.08
Collection Write Operations  (0) 2020.06.03
Collection Aggregate Operations  (0) 2020.06.02
Collection 순서 정렬  (0) 2020.06.01
Comments