YSHUSH

List 본문

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)
    
}

가변형 목록ArrayListMutableList추가, 수정, 삭제가 가능하다.

 


 

리스트 출력

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)

'Coding > Kotlin' 카테고리의 다른 글

File  (0) 2022.01.27
Map  (0) 2022.01.27
Generic  (0) 2022.01.27
Composition  (0) 2022.01.27
클래스 상속  (0) 2022.01.27