-
[Kotlin] ListKotlin 2022. 9. 14. 15:58
코틀린의 컬렉션
-List : 순서를 통해 관리
-Map : 이름을 통해 관리
-Set : 집합 관리
List
-배열과 동일하게 인덱스 번호를 통해 객체를 관리
-배열을 크기가 정해지면 변경할 수 없지만 List는 추가, 삭제 등이 가능
List 의 생성
-listOf : 불변형 리스트 생성
-mutableListOf : 가변형 리스트 생성
-emptyList : 비어있는 불변형 리스트를 생성
-listOfNotNull : null을 제외한 나머지만으로 리스트를 생성
fun main(){ val list1 = listOf(10,20,30,40,50) val list2 = listOf( "문자열1", "문자열2", "문자열3") println("list1 : $list1") println("list2 : $list2") println() }
fun main(){ val list1 = listOf(10,20,30,40,50) val list2 = listOf( "문자열1", "문자열2", "문자열3") println("list1 : $list1") println("list2 : $list2") println() var list3 = mutableListOf<Int>() // 가변형이기 때문에 더러는 비어있는 상태로 시작되어 변경함 var list4 = mutableListOf("문자열1", "문자열2", "문자열3") println("list3 : $list3") println("list4 : $list4") val list5 = emptyList<Int>() println("list5 : $list5") // null 을 제외한 나머지 들로 리스트를 구성 val list6 = listOfNotNull(10, 20, null, 30, null, 40, 50) println("list6 : $list6") for(item in list1){ print("$item ") } println("\nlist1 size : ${list1.size}") }
리스트의 값에 접근- get : 0부터 시작하는 인덱스 번호를 통해 객체를 추출할 수 있음
- Kotlin의 리스트는 배열과 동일하게 [ ]를 사용할 수 있음
println("list1 0 : ${list1.get(0)}") println("list1 1 : ${list1.get(1)}") println("list1 2 : ${list1[2]}") println("list1 3 : ${list1[3]}")
기타메서드
-indexOf : 지정된 값의 인덱스 번호를 반환한다. 값이 없을 경우 -1을 반환
-lastIndexOf : 지정된 값이 마지막에 해당하는 값의 인덱스 번호를 반환
-값이 없을 경우 -1을 반환
-subList : 지정된 범위의 값을 추출하여 새로운 리스트를 생성해 반환
val list7 = listOf(10, 20, 30, 10, 20, 30) val index1 = list7.indexOf(20) println("index1 : $index1") val index2 = list7.lastIndexOf(20) println("index2 : $index2") val list8 = list1.subList(1, 3) println("list8 : $list8")
가변형 리스트의 메서드
-add(객체) : 객체를 추가
-add(인덱스, 객체) : 주어진 인덱스 위치에 객체를 삽입
-remove(객체) : 주어진 객체를 제거
-removeAt(인덱스) : 주어진 인덱스의 객체를 제거
-set(인덱스, 객체) : 주어진 인덱스에 객체를 덮어씌움
list3.add(10) list3.add(20) list3.add(30) // 가변 리스트에 요소를 하나씩 추가 list3.addAll(listOf(40, 50, 60)) // 가변 리스트에 요소를 한번에 여러개 추가 println("list3 : $list3") // 특정인덱스에 데이터 추가. 뒤에 요소를 한칸씩 밀림. list3.add(1, 100) println("list3 : $list3") // 리스트 요소중 해당 값을 한개 또는 여러개 제거 list3.remove(100) println("list3 : $list3") list3.removeAll(listOf(200, 300)) println("list3 : $list3") list3.removeAt(1) // 지정한 인데스의 요소를 삭제 println("list3 : $list3") list3.set(1, 200) // 지정한 인덱스에 지정한 값으로 수정 println("list3 : $list3") list3[2] = 300 // 배열처럼 지정한 인덱스에 지정한 값으로 수정 println("list3 : $list3")
불변형 리스트
// 불변형 리스트(list1)를 가변형으로 변환 // list1.add(1000) // 불변형이기때문에 요소 추가는 에러 val list100=list1.toMutableList() // 불변형->가변형:불변형 변환결과를 다른 참조변수에 전달 list100.add(1000) println("list100 : $list100") val list200 = list100.toList() // 가변형 -> 불변형 // list200.add(300) //에러
'Kotlin' 카테고리의 다른 글
[Kotlin] Set (0) 2022.09.14 [Kotlin] Map (0) 2022.09.14 [Kotlin] TypeCasting (0) 2022.09.14 [Kotlin] Companion (0) 2022.09.14 [Kotlin] Interface (0) 2022.09.14