Map과 List를 정리 하며 컬렉션의 immutable과 mutable을 더 이해할 수 있게 되었다. 리스트를 검색하면서 리스트와 같이 사용할 수 있는 함수들이 생각보다 더 많다는 것을 알게 되었고 기본적인 사용법을 정리한 후 해당 함수들에 대해서도 정리하는 시간을 가져야겠다. 🤔
listOf()
함수를 사용하거나 List(5, {i -> i})
와 같이 생성자에 리스트의 길이와 초기화를 위한 람다식을 넣어 immutable List를 생성한다. // (1)
val list1 = listOf(0, 1, 2, 3, 4)
println("$list1") // [0, 1, 2, 3, 4]
// (2)
val list2 = List(5, {i -> i})
println("$list2") // [0, 1, 2, 3, 4]
mutableListOf()
함수를 사용하여 생성하며 값을 대입하지 않을 경우 타입을 필수로 명시한다.val list1 = mutableListOf(0, 1, 2, 3, 4)
println("$list1") // [0, 1, 2, 3, 4]
val list2 = MutableList<Int>(5, {i -> i})
println("$list2") // [0, 1, 2, 3, 4]
val numberList = mutableListOf<String>("one", "two", "three")
println("$numberList") // [one, two, three]
// add()
numberList.add("four")
println("$numberList") // [one, two, three, four]
// addAll()
val newList = listOf("nine", "ten")
numberList.addAll(newList)
println("$numberList") // [one, two, three, four, nine, ten]
[]
사이에 요소의 인덱스를 넣어 데이터에 접근하여 수정한다. val list1 = mutableListOf<Int>(5, 4, 3, 2, 1)
println("$list1") // [5, 4, 3, 2, 1]
list1[1] = 0 // 4 -> 0
println("$list1") // [5, 0, 3, 2, 1]
list1.set(2, 0) // 3 -> 0
println("$list1") // [5, 0, 0, 2, 1]
val list1 = mutableListOf<Int>(0, 1, 2, 3, 4)
// remove()
list1.remove(4) // [0, 1, 2, 3]
println("$list1")
// removeAt()
list1.removeAt(0)
println("$list1") // [1, 2, 3]
val list1 = MutableList<Int>(10, {i -> i})
println("$list1") // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// removeAll(collection)
list1.removeAll(listOf(0, 1, 2, 11))
println("$list1") // [3, 4, 5, 6, 7, 8, 9]
// retainAll()
list1.retainAll { it < 5 }
println("$list1") // [3, 4]
// clear()
list1.clear()
println("$list1") // []
val list1 = listOf(0, 1, 2, 3, 4)
val newList1 = list1.toMutableList()
newList1.add(5)
println("$newList1") // [0, 1, 2, 3, 4, 5]
val list2 = mutableListOf(0, 1, 2, 3, 4)
val newList2 = list2.toList()
newList2.add(5) // error: unresolved reference: add
val list1 = mutableListOf(0, 1, 1, 2, 2, 3, 4)
println("$list1") // [0, 1, 1, 2, 2, 3, 4]
val idx = list1.indexOf(2)
println("$idx") // 3
val lastIdx = list1.lastIndexOf(1)
println("$lastIdx") // 2
val subList = list1.subList(0, 3)
println("$subList") // [0, 1, 1]
val distinct = list1.distinct()
println("$distinct") // [0, 1, 2, 3, 4]
참조
리스트 사용법