Coding/Kotlin
List
코딩;
2022. 1. 27. 16:27
Collection은 수집이라는 뜻으로
ArrayList ・ LinkedList ・ HashMap ・ TreeMap 등이 있다
일반 리스트 사용
fun main(args: Array<String>) {
// 추가, 삭제 불가능
var numbers:List<Int> = listOf(1, 2, 3, 4, 5)
for(n in numbers) print("$n ")
println()
var names:List<String> = listOf("one", "two", "three")
for(name in names){
println(name)
}
println( names.size )
println(names.get(1))
println(names.indexOf("three"))
println(names.contains("two"))
// 여러가지 타입
var mixedTypes = listOf("hello", 123, true, 123.4567)
for(m in mixedTypes){
println(m)
}
// 리스트만을 생성
val emptyList = emptyList<String>()
}
null이 아닌 요소만 걸러주는 nonNullList
fun main(args: Array<String>) {
// null이 아닌 요소(element)만을 골라서 수집
val nonNullList:List<Int> = listOfNotNull(2, 45, 3, null, 5, 7, null)
println(nonNullList)
println(nonNullList[2])
}
ArrayList의 사용
fun main(args: Array<String>) {
// 가변형 목록
val strList:ArrayList<String> = arrayListOf<String>("hello", "world", "success")
strList.add("kotlin")
println(strList)
}
MutableList의 사용
fun main(args: Array<String>) {
// 가변형 List
val mutableListNames:MutableList<String> = mutableListOf<String>("kim", "lee", "yoon")
mutableListNames.add("park") // 추가
println(mutableListNames)
mutableListNames.removeAt(2)
println(mutableListNames)
mutableListNames[0] = "yang" // 수정
println(mutableListNames)
// 혼합 mutableList
val mutableListMix = mutableListOf("android", "react", 5, 6, true)
println(mutableListMix)
// 가변형 리스트로 변경하고 싶은 경우
val newNames = names.toMutableList()
newNames.add("four")
println(newNames)
}
가변형 목록인 ArrayList와 MutableList는 추가, 수정, 삭제가 가능하다.
리스트 출력
fun main(args: Array<String>) {
val fruits = listOf("apple", "banana", "kiwi")
for(item in fruits){
println(item)
}
// index와 같이 출력
for(index in fruits.indices){
println("fruits[$index] ${fruits[index]}")
}
println()
// while
var index = 0
while(index < fruits.size){
println("fruits[$index] ${fruits[index]}")
index++
}
}
index찾기
fun main(args: Array<String>) {
var findIndex = -1
for(i in 0..fruits.size-1 step(1)){
if(fruits.get(i) === "banana"){
findIndex = i
break
}
}
println("$findIndex ${fruits[findIndex]}")
}
object 관리
fun main(args: Array<String>) {
val duckList:MutableList<Duck> = mutableListOf()
val duck = Duck("오복이", 2)
duckList.add(duck)
duckList.add(Duck("오남이", 3))
duckList.add(Duck("오순이", 5))
for(d in duckList){
println(d.name)
}
}
// Duck Dto
class Duck(val name:String, val age:Int)