Kotlin中List、Array、传统数组、可变长参数的相互转换

本文介绍了Kotlin中List、Array和可变长参数的区别及相互转换方法,包括List转Array、Array转List、Array转可变长参数、可变长参数转Array、List转可变长参数以及可变长参数转List的详细步骤,重点讨论了传播符号在转换过程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

区别

首先得分清楚它们的对应关系,kotlin中没有传统的数组(int[]),一切皆是对象

所以kotlin中只有ListArrayvarargs(可变长参数)三种

转换

List转Array

    fun a(){
        val list : List<String> = listOf("hello","world")
        //转换1
        b(arrayOf(list))
        //转换2
        b(list.toTypedArray())
    }

    fun b(array: Array<*>){
        //Array参数函数
    }

Array转List

    fun a(){
        val array : Array<String> = arrayOf("hello","world")
        //转换1
        b(listOf(array))
        //转换2
        b(array.toList() as List<*>)
    }

    fun b(list: List<*>){
        //List参数函数
    }

Array转varargs(可变长参数)

    fun a(){
        val array : Array<String> = arrayOf("hello","world")
        //转换
        b(*array)
    }

    fun b(vararg strings: String){
        //可变长参数函数
    }

这里用到的*叫做传播符号(spread operator),可以把Array转换成多个元素

varargs(可变长参数)转Array

    fun a(vararg strings: String){
    	//无需转换
        b(strings)
    }

    fun b(array: Array<*>){
        //Array参数函数
    }

List转varargs(可变长参数)

    fun a(){
        val list : List<String> = listOf("hello","world")
        //转换
        b(*list.toTypedArray())
    }
    
    fun b(vararg strings: String){
        //可变长参数函数
    }

类似上面的,只是先要转换成Array,再用传播符转成varargs

varargs(可变长参数)转List

    fun a(vararg strings: String){
   		//转换
        b(strings.toList())
    }

    fun b(list: List<*>){
        //List参数函数
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值