相关文章推荐
老实的灭火器  ·  利用注解改进代码检查  |  ...·  4 月前    · 
英俊的桔子  ·  AJAX not working in ...·  3 月前    · 
慷慨大方的野马  ·  Lionbridge ...·  1 年前    · 
豪爽的香烟  ·  关于36氪的没想到游乐园,他们是怎么做到的? ...·  1 年前    · 
卖萌的排球  ·  45只!创历年新高·  1 年前    · 
腼腆的跑步鞋  ·  甘雨落尽始刻晴的个人空间-甘雨落尽始刻晴个人 ...·  2 年前    · 
Code  ›  Kotlin入门(4)声明与操作数组开发者社区
string var 数组 kotlin
https://cloud.tencent.com/developer/article/1384960
坚强的铁板烧
3 年前
作者头像
用户4464237
0 篇文章

Kotlin入门(4)声明与操作数组

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 老欧说安卓 > Kotlin入门(4)声明与操作数组

Kotlin入门(4)声明与操作数组

作者头像
用户4464237
发布 于 2019-01-18 15:10:17
838 0
发布 于 2019-01-18 15:10:17
举报

上一篇文章介绍了基本变量类型在Kotlin中的用法,不过这只针对单个变量,如果要求把一组相同类型的变量排列起来,形成一个变量数组,那又该如何声明和操作呢? 在Java中声明数组,跟在C语言中声明是一样的,以整型数组为例,声明并赋值的语句如下所示:

    int[] int_array = new int[] {1, 2, 3};

其它基本类型的数组声明与之类似,只要把int替换为long、float、double、boolean、char即可。但在Kotlin中,声明并赋值一个整型数组的语句是下面这样的:

    var int_array:IntArray = intArrayOf(1, 2, 3)

两相对比,对于整型数组的声明,Java与Kotlin有以下区别: 1、Kotlin另外提供了新的整型数组类型即IntArray; 2、分配一个常量数组,Kotlin调用的是intArrayOf方法,并不使用new关键字; 推而广之,其它类型的数组也各有自己的数组类型,以及对应分配常量数组的方法,说明如下: 长整型数组:数组类型为LongArray,分配方法为longArrayOf; 浮点数组:数组类型为FloatArray,分配方法为floatArrayOf; 双精度数组:数组类型为DoubleArray,分配方法为doubleArrayOf; 布尔型数组:数组类型为BooleanArray,分配方法为booleanArrayOf; 字符数组:数组类型为CharArray,分配方法为charArrayOf; 以上几种基本变量数组的声明代码举例如下:

    var long_array:LongArray = longArrayOf(1, 2, 3)
    var float_array:FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f)
    var double_array:DoubleArray = doubleArrayOf(1.0, 2.0, 3.0)
    var boolean_array:BooleanArray = booleanArrayOf(true, false, true)
    var char_array:CharArray = charArrayOf('a', 'b', 'c')

不知读者有没有注意到,上面的数组类型不包括字符串数组,而Java是允许使用字符串数组的,代码示例如下:

    String[] string_array = new String[] {"How", "Are", "You"};

但在Kotlin这里,并不存在名为StringArray的数组类型,因为String不属于基本变量类型。要想在Kotlin中声明字符串数组,得使用Array<String>,也就是把String用尖括号包起来;同时,分配字符串数组的方法也相应变成了arrayOf,具体代码如下所示:

    var string_array:Array<String> = arrayOf("How", "Are", "You")

这种字符串数组的声明方式是不是很熟悉?看起来就跟Java里面的ArrayList用法差不多,都是在尖括号中间塞进数据结构的类型。同理,其它变量类型也能通过Array<***>方式来声明,像前面介绍的整型数组,其实可以使用类型Array<Int>,以此类推改造之后的数组声明代码如下:

    var int_array:Array<Int> = arrayOf(1, 2, 3)
    var long_array:Array<Long> = arrayOf(1, 2, 3)
    var float_array:Array<Float> = arrayOf(1.0f, 2.0f, 3.0f)
    var double_array:Array<Double> = arrayOf(1.0, 2.0, 3.0)
    var boolean_array:Array<Boolean> = arrayOf(true, false, true)
    var char_array:Array<Char> = arrayOf('a', 'b', 'c')

现在声明数组和对数组赋值都有了,还需要对数组做进一步的处理,常见的处理包括获取数组长度、获取指定位置的数组元素等等,这些功能在Java与Kotlin之间的区别包括: 关于获取数组长度,Java使用.length,而Kotlin使用.size。 关于获取指定位置的数组元素,Java通过方括号加下标来获取,比如“int_array[0]”指的是得到该数组的第一个元素;Kotlin也能通过方括号加下标来获取指定元素,不过Kotlin还拥有get和set两个方法,通过get方法获取元素值,通过set方法修改元素值,看起来就像在操作ArrayList队列。 下面是字符串数组的具体操作代码:

    btn_string.setOnClickListener {
        var str:String = ""
        var i:Int = 0
        while (i<string_array.size) {
            str = str + string_array[i] + ", "
            //数组元素可以通过下标访问,也可通过get方法访问
            //str = str + string_array.get(i) + ", "
        tv_item_list.text = str
 
推荐文章
老实的灭火器  ·  利用注解改进代码检查  |  Android Studio  |  Android Developers
4 月前
英俊的桔子  ·  AJAX not working in android/ios - Hosting Support - InfinityFree Forum
3 月前
慷慨大方的野马  ·  Lionbridge 新发布电子书:《生命科学领域的人工智能 (AI) 和语言策略》
1 年前
豪爽的香烟  ·  关于36氪的没想到游乐园,他们是怎么做到的? | 人人都是产品经理
1 年前
卖萌的排球  ·  45只!创历年新高
1 年前
腼腆的跑步鞋  ·  甘雨落尽始刻晴的个人空间-甘雨落尽始刻晴个人主页-哔哩哔哩视频
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号