728x90
List 란?
코틀린에서는 여러 가지 형태의 콜렉션(Collection)이 있습니다. 그 중 List에 대해서 알아보겠습니다.
List는 배열(Array)와 흡사 하지만 동적 자료 구조 형태이며, 값이 정해져 있지 않아 수정할 수 있습니다.
List 콜렉션의 특징
- 배열 값이 정해져 있지 않아 수정이 가능하고 이는 불연속적인 메모리 공간을 점유하여 메모리 관리에 용이합니다.
- 가변성, 불가변성을 동시에 가지고 있습니다.
- 중복 요소를 허용합니다.
- 정해진 메모리 공간을 사용하는게 아닌, 불연속적인 메모리 사용으로 검색 성능이 낮습니다.
배열과 리스트의 차이점
List(리스트) | Array(배열) | |
Iterator | 인터페이스 구현 방식 | 내부적 구현 방식 |
Index | 접근 가능 | 접근 가능 |
isEmpty, contains | 가능 | 불가능 |
add, remove | 가능 | 불가능 |
listOf()
내용을 바꿀 수 없는 immutable 형태를 가진 기본적인 리스트 함수입니다.
var list1 = listOf(1,2,3)
var name1: List<String> = listOf("세모","네모","동그라미")
println(list1) // [1,2,3]
println(name1) // [세모, 네모, 동그라미]
mutableListOf()
내용을 변경 할 수 있는 mutable 형태의 리스트 함수입니다.
val myNum = mutableListOf(1,2,3)
var name1: MutableList<String> = mutableListOf("세모", "네모", "동그라미")
println(list1) // [1,2,3]
println(name1) // [세모, 네모, 동그라미]
List 값 추가하기
.add()
var list1 = listOf(1,2,3)
var name1: MutableList<String> = mutableListOf("세모", "네모", "동그라미")
list1.add(5) //mutable이 아닌 listOf로 만들어졌기 때문에 오류가 발생하게됩니다.
name1.add("오각형")
name1.add(1, "육각형") // [1]번째 배열에 육각형이라는 값을 집어 넣습니다.
println(list1) // [1,2,3]
println(name1) // [세모,육각형, 네모, 동그라미, 오각형]
- add(번호, 값) 형태로 원하는 순서로 배열할 수 있으며, 기존에 있던 값은 뒤로 밀려납니다.
List 값 지우기
.remove()
.removeAt()
fun main() {
var list1 = listOf(1,2,3)
var name1: MutableList<String> = mutableListOf("세모", "네모", "동그라미")
//list1.remove(1) //mutable이 아닌 listOf로 만들어졌기 때문에 오류가 발생하게됩니다.
name1.remove("세모") // 값을 지정하여 제거할 수 있습니다.
name1.removeAt(1) removeAt을 통하여 index 번호에 있는 값을 제거합니다.
println(list1) // [1,2,3]
println(name1) // [네모]
}
- remove 함수를 통하여 엘리멘탈 값으로 또는 인덱스 값으로 특정 요소를 지울 수 있습니다.
리스트를 통한 메소드 다루기
.retainAll
var list1 = listOf(1, 2, 3)
var list2 = mutableListOf(1, 2,7,8)
list2.retainAll(list1)
println(list2) // [1, 2]
- 두 개의 Collection에서 공통인 요소만 남깁니다.
.subList
val list = mutableListOf(1, 2, 3, 4, 5, 6)
val subList = list.subList(2, 4)
println(subList) //[3, 4]
- 'subList'가 생성한 새로운 변수는 'list'의 2부터 3까지 값을 가져옵니다.
.iterator
fun main() {
val numbers = listOf("one", "two", "three", "four")
val iterator = numbers.iterator()
val number = iterator.next()
println(number)
}
- 함수 생성 후 리스트의 첫 번째 값을 가르킵니다.
.distinct
val list = mutableListOf("apple", "banana", "orange", "banana", "grape", "apple")
val fruit = list.distinct()
println(fruit) // [apple, banana, orange, grape]
- 중복된 데이터 값을 제거합니다.
반응형
728x90
반응형
'Kotlin Language > Kotlin 기본 문법' 카테고리의 다른 글
Kotlin(코틀린) - 생성자(init, Constructor) (0) | 2023.12.01 |
---|---|
Kotlin(코틀린) - 생성자 클래스(Class) (0) | 2023.11.30 |
Kotlin(코틀린) - 콜렉션(Map, Set) (0) | 2023.11.30 |
Kotlin(코틀린) - 배열(Array, ArrayOf, Method) 메소드 사용법 (0) | 2023.11.29 |
Kotlin(코틀린) - 반복문(for, while, do-while) 흐름제어 (0) | 2023.11.28 |
Kotlin(코틀린) - 조건문 (if, else, when) 조건식 사용법 (0) | 2023.11.28 |