타닥타닥 개발자의 일상

Kotlin에서 list, array, MutableList 사용하는 예시 / 리스트 생성하기 / lisfOfNotNull 만들기 / index찾기 / 일반 리스트 가변형 리스트로 변환 / list->array 전환 / array->list 전환 본문

코딩 기록/Kotlin

Kotlin에서 list, array, MutableList 사용하는 예시 / 리스트 생성하기 / lisfOfNotNull 만들기 / index찾기 / 일반 리스트 가변형 리스트로 변환 / list->array 전환 / array->list 전환

NomadHaven 2022. 1. 27. 00:01
fun main(args: Array<String>) {

    //collection 수집 ArrayList LinkedList HashMap TreeMap

    //추가, 삭제 불가
    var numbers: List<Int> = listOf<Int>(1,2,3,4,5)

    for(n in numbers) print("$n") //출력값: 12345
    println()



    var names:List<String> = listOf<String>("one","two","three")
    for(name in names){
        println(name)
    }
    /*
    출력값
    one
    two
    three

    */

    println(names.size) //출력값: 3
    println(names.get(1)) //출력값: two
    println(names.indexOf("three")) //출력값:2
    println(names.contains("two")) //있다 없다에 대한 해답  출력값: true

    //여러가지 타입
    var mixedType = listOf("hello",123,true,123.455)
    for (m in mixedType){
        println(m)
    }
    /*
    출력값:
    hello
    123
    true
    123.455
    */

    //리스트만을 생성
    val emptyList = emptyList<String>()

    //null이 아닌 요소(element)만을 골라서 수집
    val nonNullList: List<Int> = listOfNotNull(2,45,3,null,5,7,null)
    println(nonNullList) //출력값: [2, 45, 3, 5, 7]
    println(nonNullList[2]) //출력값: 3

    //가변형 목록
    val strList: ArrayList<String> = arrayListOf<String>("hello","world","hi","bye","sayonara")
    strList.add("kotlin")
    println(strList) //kotlin이 추가되어서 출력 [hello, world, hi, bye, sayonara, kotlin]

    //가변형 List
    val mutableListNames:MutableList<String> = mutableListOf<String>("king","Queen","princess")
    mutableListNames.add("park") //추가
    println(mutableListNames) //출력값:[king, Queen, princess, park]

    mutableListNames.removeAt(2) //삭제
    println(mutableListNames) //출력값: [king, Queen, park]

    mutableListNames[0] = "prince" //수정
    println(mutableListNames) //출력값:[prince, Queen, park]

    val mutableListMix = mutableListOf("android","react",5,6,true)
    println(mutableListMix) //출력값: [android, react, 5, 6, true]

    //추가 삭제 불가했던 리스트를 가변형 리스트로 변경할 경우
    val newNames = names.toMutableList() // 가변형 리스트로 변경
    newNames.add("four")
    println(newNames) // 출력값: [one, two, three, four] four가 추가되었다.

    println()

    val fruits = listOf("apple","banana","kiwi")

    for(item in fruits){
        println(item) }
        /*
        출력값:
        apple
        banana
        kiwi
         */

    //index와 같이 출력
    for(index in fruits.indices){
        println("fruits[$index]: ${fruits[index]}")
    }
    /*
    출력값
    fruits[0]: apple
    fruits[1]: banana
    fruits[2]: kiwi
     */

    // while
    var index=0
    while(index < fruits.size){
        println("fruits[$index]: ${fruits[index]}")
        index++
    }
       /*
      출력값
      fruits[0]: apple
      fruits[1]: banana
      fruits[2]: kiwi
       */

    //index 찾기
    var findIndex = -1 //못찾았을 때 수
    for(i in 0..fruits.size-1 step(1) ){
        if(fruits.get(i)==="banana"){
            findIndex = i
            break
        }
    }
    println("$findIndex ${fruits[findIndex]}") //출력값: 1 banana

    //object 관리
    val list:MutableList<Duck> = mutableListOf()
	//참고 : class Duck(val name:String, val age:Int)
    val duck = Duck("Donald1",2)

    list.add(duck)
    list.add(Duck("Donald2",3))
    list.add(Duck("Donald3",5))

    for(d in list){
        println(d.name)
    }
    /*
    출력값
    Donald1
    Donald2
    Donald3
    */

    //list -> array
    val vlist: List<String> = listOf("a", "b", "c", "d", "e")
    val varray: Array<String> = vlist.toTypedArray()
    varray.forEach {
        print(it) }
    //출력값: abcde

    println()//그냥 개행

    
    //array -> list
    val aarray = arrayOf(1,2,3,4,5)
    val alist = aarray.toList()
    alist.forEach {
        print("${it}, ")
    }
    //출력값:1,2,3,4,5



}


class Duck(val name:String, val age:Int)
Comments