专栏首页大前端Kotlin Array 创建、增、删、改、查、插入

Kotlin Array 创建、增、删、改、查、插入

示例代码

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_test.*

/**
 * Array 创建、增、删、改、查、插入
 * @author lyl 20181228
 * */
class ArrayActivity : AppCompatActivity() {

    // 定义Int类型数组
    var itemArr = intArrayOf(1,2,3,4,5,6,7,8)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test)

        // 初始
        helloArray.text = "初始:" + itemArr.asList().toString() +"\n\n"

        // 添加
        addItem(9)
        helloArray.text = helloArray.text as String + "添加:" + itemArr.asList().toString() +"\n\n"

        // 删除
        deleteItem(0)
        helloArray.text = helloArray.text as String + "删除:" + itemArr.asList().toString() +"\n\n"

        // 修改
        editItem(0,-1)
        helloArray.text = helloArray.text as String + "修改:" + itemArr.asList().toString() +"\n\n"

        // 取值get
        var item:Int = getItem(0)
        helloArray.text = helloArray.text as String + "取值:" + item.toString() +"\n\n"

        // 插入
        insertItem(0,-2)
        helloArray.text = helloArray.text as String + "插入:" + itemArr.asList().toString() +"\n\n"
    }

    /**
     * 增加item
     * @item:需添加数值
     * */
    fun addItem(item:Int){
        var newArr = IntArray(itemArr.size+1)
        for(i in itemArr.indices){
            newArr[i] = itemArr[i]
        }
        newArr[itemArr.size] = item
        itemArr = newArr
    }

    /**
     * 删除item
     * @index:删除位置下标
     * */
    fun deleteItem(index:Int){
        var newArr = IntArray(itemArr.size - 1)
        for(i in newArr.indices){
            if(i < index){
                newArr[i] = itemArr[i]
            }else{
                newArr[i] = itemArr[i + 1]
            }
        }
        itemArr = newArr
    }

    /**
     * 修改item
     * @index:修改位置下标
     * @item:修改后数值
     * */
    fun editItem(index:Int,item:Int){
        itemArr[index] = item
    }

    /**
     * 获取item
     * @index:获取位置下标
     * */
    fun getItem(index:Int):Int{
        return itemArr[index]
    }

    /**
     * 插入item
     * @index:插入位置下标
     * @item:插入位置数值
     * */
    fun insertItem(index:Int,item:Int){
        var newArr = IntArray(itemArr.size + 1)
        for(i in itemArr.indices){
            if(i < index){
                newArr[i] = itemArr[i]
            }else{
                newArr[i + 1] = itemArr[i]
            }
        }
        newArr[index] = item
        itemArr = newArr
    }

}

运行效果

补充

  • 长整型数组:数组类型为LongArray,分配方法为longArrayOf var itemArr :LongArray = longArrayOf(1, 2, 3)
  • 浮点数组:数组类型为FloatArray,分配方法为floatArrayOf var itemArr :FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f)
  • 双精度数组:数组类型为DoubleArray,分配方法为doubleArrayOf var itemArr :DoubleArray = doubleArrayOf(1.0, 2.0, 3.0)
  • 布尔型数组:数组类型为BooleanArray,分配方法为booleanArrayOf var itemArr :BooleanArray = booleanArrayOf(true, false, true)
  • 字符数组:数组类型为CharArray,分配方法为charArrayOf var itemArr :CharArray = charArrayOf('a', 'b', 'c')
  • 字符串数组:数组类型为Array<String>,分配方法为arrayOf var itemArr :Array<String> = arrayOf("Hello", "Kotlin", "Array")
  • Kotlin Array更多介绍:https://www.kotlincn.net/docs/reference/basic-types.html#arrays

完毕。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Gradle 5.0 正式版发布

    Gradle 5.0 正式版发布了,官方表示这是史上最快、最安全,最强大的版本,且没有之一。改进的增量编译和增量注释处理构建在已经具有构建缓存和最新检查功能的可...

    码脑
  • Kotlin Array 二分法查找

    码脑
  • 微信小程序 scroll-view 滚动至底部

    码脑
  • Kubernetes上的OpenTracing - 轻松获取你的追踪

    自从我第一次摆弄Istio - 一个运行在K8s上的智能服务网格 - 我就被它的自动注入功能吸引住了。轻弹开关,Istio就会分散在你现有的部署中,为你提供梦幻...

    CNCF
  • 1小时上手MaskRCNN·Keras开源实战 | 深度应用

    MaskRCNN 是何恺明基于以往的 faster rcnn 架构提出的新的卷积网络,一举完成了 object instance segmentation。该方...

    AI科技大本营
  • Spring核心——Profile管理环境 原

    在介绍Spring核心模块为运行环境管理提供的功能之前,咱们先得解释清楚“运行环境”是什么。

    随风溜达的向日葵
  • Docker/K8s 解决容器内时区不一致方案

    本次演示环境,我是在虚拟机上安装 Linux 系统来执行操作,通过虚拟机完成 Kubernetes 集群的搭建,以下是安装的软件及版本:

    哎_小羊
  • kubernetes/Docker 容器内时区不一致解决方案

    我们知道,使用 docker 容器启动服务后,如果使用默认 Centos 系统作为基础镜像,就会出现系统时区不一致的问题,因为默认 Centos 系统时间为 U...

    kubernetes中文社区
  • ASP.NET Core的配置(4):多样性的配置来源[中篇]

    我们在本篇文章中会介绍三种针对物理文件的ConfiguationProvider,它们分别是针对JSON文件的JsonConfiguationProvider,...

    蒋金楠
  • MIT 发明“雾中看车”新成像系统,雾天自动驾驶表现比人类更好

    新智元

扫码关注云+社区

领取腾讯云代金券