文档章节

Kotlin 数组

猴亮屏
 猴亮屏
发布于 2017/07/11 10:06
字数 332
阅读 23
收藏 0

目录

 

摘要

创建数组(3种方法),空数组,访问元素,遍历数组,检查下标

数组

概述

  • Array 类代表着数组
  • [] 可以用于访问数组的元素,实际上 [] 被进行了操作符的重载,调用的是 Array 类的 setter 和 getter 方法

创建数组

直接指定长度

val fixedSizeArray = arrayOfNulls<Int>(5)
  • 使用装箱操作
val arr = arrayOf(1, 2, 3)
val intArr = intArrayOf(1, 2, 3)    //同理还有 booleanArrayOf() 等
  •  

使用闭包进行初始化

val asc = Array(5, { i -> i * i })  //0,1,4,9,16
  •  

空数组

 val empty = emptyArray<Int>()
  •  

长度为 0 的空数组

访问数组元素

val arr = arrayOf(1, 2, 3)
println(asc[1])         //  1
println(asc.get(1))     //  1
//    println(asc[10])      ArrayIndexOutOfBoundsException
  •  

[] 虽然调用的是 setter 和 getter 方法,但是编译成字节码时会被进行优化,变成直接访问数组的内存地址,所以不会造成性能损失。

修改元素

asc[1] = 10
  •  

遍历数组

for (i in asc) {
    println(i)
}
  •  

此操作不会创建 iterator 对象,不会影响性能

遍历数组下标

for (j in asc.indices) {
    println(j)
}
  •  

此操作不会创建 iterator 对象,不会影响性能

检查下标

if (i in asc.indices) { // i>=0 && i<asc.size()
    println("indices:" + i)
}

本文转载自:http://blog.csdn.net/mrseasons/article/details/46723819

猴亮屏

猴亮屏

粉丝 38
博文 542
码字总数 60882
作品 4
北京
Android工程师
私信 提问
从 Hello World 开始

学一门编程语言的开始往往是一个最简单的 Hello World 程序,我们的 Kotlin 学习也不例外: fun main(args: Array) { println("Hello World")} 我们来分析一下有意义的两行代码: fun main(a...

浪味仙儿H
2017/05/27
0
0
《Kotlin 程序设计》第三章 Kotlin 类型系统

第三章 Kotlin 类型系统 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.jd.com/12181725.html 天猫Tmall:https://detai......

程序员诗人
2017/05/29
0
0
Kotlin 里那些「不是那么写的」

本期作者: 视频:扔物线(朱凯) 文章:Walker(张磊) 大家好,我是扔物线朱凯。这是码上开学 Kotlin 基础部分的第二期:Kotlin 里那些「不是那么写的」。话不多说,视频伺候。 因为我一直...

扔物线
08/21
0
0
Kotlin 基本数据类型(三)

Kotlin 基本数据类型(三) 上一次大家学会了创建你的第一个Kotlin应用 Kotlin 快速创建您的第一个应用(二) Kotlin 基本数据类型: Kotlin 的基本数值类型包括 Byte、Short、Int、Long、F...

Diosamolee
2018/01/01
0
0
Kotlin:基本类型都是对象,原生类型将成为回忆

在Kotlin中,所有东西都是对象,我们可以在任何变量(如基本类型:数字、字符、布尔、数组与字符串等)上调用成员函数和属性。 一、数字 1. 内置类型种类 Kotlin提供了如下内置类型来表示数据...

p106786860
2017/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
32分钟前
5
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
33分钟前
4
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
36分钟前
8
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
40分钟前
7
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
53分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部