본문 바로가기
Kotlin Language/Kotlin 기본 문법

Kotlin(코틀린) - 콜렉션(List) 사용법

by Classic Master 2023. 11. 29.
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
반응형