您当前的位置: 首页 >  容器

Kevin-Dev

暂无认证

  • 0浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Kotlin -- 知识点】数据容器(数据 & 集合)

Kevin-Dev 发布时间:2018-05-08 15:31:44 ,浏览量:0

容器是用于存放数据的载体。容器分为数组、集合。

Kotlin 数组 1. 特点

数组是一种初始化时指定容器大小,不可以动态调整其大小的容器。元素按顺序存储在一串连续的内存段上。

2. 创建方式
  • arrayOf 创建数组 创建一个数组并传递元素值给它,集合中的元素可以是任意类型
val array = arrayOf(1, 2, 3)
val arr = arrayOf(1, true, "kotlin", JSONObject())    // 集合中的元素可以是任意类型
  • arrayOfNulls 创建数组 创建一个指定大小的、所有元素都为空的数组,但必须指定集合中的元素类型
val args = arrayOfNulls(6)
  • 动态创建数组 用接受数组大小以及一个方法参数的 Array 构造方法,用作参数的方法能够返回给定索引的每个元素初始值: 13.png
3. 常见操作

14.png

  • 获取元素
val array = arrayOf(1, 2, 3, 4, 5)
array[index]    //获取数组的第 index 个元素,下标从 0 开始
  • for 循环 – 元素遍历
fun main() {
    val args = arrayOf(1, 2, 3, 4, 5)
    for (item in args) {
        println(item)  
    }
}
  • for 循环 – 下标遍历
fun main() {
    val args = arrayOf(1, 2, 3, 4, 5)
    for (i in args.indices) {
        println(i.toString() + "→" + args[i])
     
    }
}
  • for 循环 – 遍历元素(带索引)
fun main() {
    val args = arrayOf(1, 2, 3, 4, 5)
    for ((index, item) in args.withIndex()) {
        println("$index ===> $item")
    }
}
  • forEach 遍历数组
fun main() {
    val args = arrayOf(1, 2, 3, 4, 5)
    args.forEach { 
        println(it)
    }
}
  • forEach 增强版
val args = arrayOf(1, 2, 3, 4, 5)
    args.forEachIndexed{index, item ->
        println("$index ===> $item")
    }
Kotlin 集合

各种集合对于解决问题都具有重要意义,并且经常用到。与数组不同的是可变集合的大小可以动态改变。

  • List 集合:是一个有序列表,可通过索引访问元素。元素可以在 list 中出现多次、元素可重复。
  • Set 集合:是元素唯一的集合。一组无重复的对象。
  • Map 集合:是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复。
创建方式 1. List 集合创建
fun main() {
    // 可变列表,必须指定元素类型
    val list = mutableListOf()
    list.add("android")
    list.add("ios")
    list.add("kotlin")

    val list2 = mutableListOf("java","c#","spring")
    list2.add("c++")

    // 不可变列表,必须指定元素类型;必须指定初始化数据元素
    val list3 = listOf(1,2,3)
}
2. Map 集合创建
fun main() {
    // 可变 map
    val map = mutableMapOf()
    map[1] = "android"
    map[2] = "ios"
    map[3] = "android"

    // 使用 Pair 指定集合中初始化的元素
    val map2 = mutableMapOf(Pair(1,"A"), Pair(2,"B"))


    // 不可变 map,元素使用 Pair 包装;必须指定初始元素
    val map3 = mapOf(Pair(1,"kotlin"))
}
3. Set 集合创建
fun main() {
    // 可变 Set,元素唯一
    val set = mutableSetOf()
    set.add("android")
    set.add("ios")
    set.add("windows")
    set.add("windows") // 这个是添加不进去的噢
    for (item in set) {
        println(item)
    }

    val set2 = mutableSetOf("abc","def","ghk")
    set2.add("abc") // 这个是添加不进去的噢


    // 不可变 Set,必须指定初始元素
    val map3 = setOf(1, 2, 3)
}
}
集合的操作

15.png

集合的排序 1. 翻转
fun main(
    val list = mutableListOf(1,3,5,7,9)
    list.reverse()
    list.forEach {
        print("$it ")
    }
}
2. 排序,从小到大
fun main() {
    val list = mutableListOf(2,1,3,5,7,5)
    list.sort()
    list.forEach {
        print("$it ")
    }
}
3. 排序,从大到小
fun main() {
    val list = mutableListOf(2,1,3,5,7,5)
    list.sortDescending()
    list.forEach {
        print("$it ")
    }
}
关注
打赏
1658837700
查看更多评论
立即登录/注册

微信扫码登录

0.0845s