가변 : 보통 컬렉션 객체는 가변임
불변 : 한 번 만들어지면 추가, 수정, 삭제를 할 수 없음
불변 객체의 내부 운소에 대한 추가, 삭제, 수정 메서드를 가지면 기존 객체는 그대로 두고 새로운 객체를 생성
리스트는 인덱스 순서대로 원소를 관리하는 컬렉션
종류
ArrayList : 고정 길이로 리스트를 생성. 고정 길이가 넘을 경우 리스트의 사이즈를 확대해서 원소 추가
listOf, mutableListOf로 생성
val list = listOf(1, 2, 3)
val mlist = mutableListOf(1, 2, 3)
LinkedList : 가변 길이로 리스트 생성. 각 원소가 가지는 주소를 별도로 보관
LinkedList 클래스로 리스트 객체 생성
val list = LikedList<String>()
다양한 리스트 객체 생성
emptyList
val emptyList : List<String> = emptyList<String>()
널 제거 리스트
val nonNullsList = listOfNotNull(2, 45, 2, null)
println(nonNullsList)
[2, 45, 2]
arrayList
val list: ArrayList<String> = arrayListOf("hi", "kotlin")
println(list)
[hi, kotlin]
가변 리스트
val mList = mutableListOf<String>("가", "나", "다")
mList.add("라")
mList.removeAt(1)
mList[0] = "A"
println(mList)
[A, 다, 라]
집합은 순서가 없고 모든 원소는 유일한 값을 가짐.