Kotlin 学习-集合

复制代码
/**
 * kotlin 集合
 * List:是一个有序列表,可通过索引(下标)访问元素。元素可以在list中出现多次、元素可重复
 * Set:是元素唯一的集合。一般来说 set中的元素顺序并不重要、无序集合
 * Map:(字典)是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复
 * */

fun main() {
    /**
     * 列表的创建方式-可变列表
     * */
    val arrayString= mutableListOf<String>()
    arrayString.add("1")
    arrayString.add("2")
    arrayString.add("2")
    arrayString.add(3,"3")

    val arrayString2= mutableListOf<String>("1","2","3","3")
    arrayString2.add("4")

    /**
     * 列表的创建方式-不可变列表:没有add,remove 等操作方法
     * 必须指定元素类型
     * 必须指定初始化数据元素
     * */
    val arrayInt= listOf<Int>(1,2,3)

    /**
     * map字典的创建--可变字典
     * Map:(字典)是一组键值对。键是唯一的,每个键都刚好映射到一个值,值可以重复
     * */
   val array:ArrayMap<String,String> = arrayMapOf(Pair("key","value"))
    val arrayMap= mutableMapOf<String,String>()
    arrayMap["1"] = "1"
    arrayMap["2"] = "2"
    arrayMap["3"] = "3"
    arrayMap["3"] = "4"//当key相同时,会覆盖上一次数据

    /**
     * map 字典的创建--使用Pair指定集合中初始化的元素
     * */
    val arrayMap2= mutableMapOf<String,String>(Pair("key","value"))

    /**
     * Map字典的创建--不可变字典,不可动态添加--没有put 等操作方法
     * */
    val arrayMap3= mapOf<String,String>(Pair("key","value"))
    val arrayMap4= mapOf<String,String>()

    /**
     * Set集合的创建--可变集合,元素唯一
     * */
    val set= mutableSetOf<Int>()
    set.add(1)
    set.add(2)
    set.add(3)
    set.add(3)//添加不进去

    for (item in set) {
        println(item)
    }

    val set2= mutableSetOf<Int>(1,2,3,4,5)
    set2.add(1)
    set2.add(2)
    for (item in set2) {
        println(item)
    }

    /**
     * Set集合的创建--不可变集合,元素唯一
     * */
    val set3= setOf<Int>(1,2,3,4,5)
}

集合具体使用方法

集合高级方法:翻转,随机排序

复制代码
//集合元素翻转
val numbers= mutableListOf(1,2,3,4,5)
println(numbers)
numbers.reverse()
println(numbers)

//随机排列元素
numbers.shuffle()
println(numbers)

//从小到大排序
numbers.sort()
println(numbers)

//从大到小排序
numbers.sortDescending()
println(numbers)
相关推荐
精明的身影5 分钟前
C++自学之路1:Hello world
开发语言·c++
森林古猿136 分钟前
再论斜率优化
c++·学习·算法
leo__52043 分钟前
基于导航数据的扩展卡尔曼滤波(EKF)MATLAB 实现
开发语言·matlab
心中有国也有家1 小时前
鸿蒙Flutter开发环境从零搭建教程(Windows/macOS双平台·避坑版)
学习·flutter·华为·harmonyos
gugucoding1 小时前
25. 【C语言】二进制文件与随机读写
c语言·开发语言
北极星日淘1 小时前
中古货品品相评级算法实战|Java权重计分实现标准化五级品相体系
开发语言·python
聚美智数1 小时前
黄历查询-运势查询-国际法定节假日查询-API接口介绍
android·java·数据库
小巧的砖头2 小时前
C#会重蹈覆辙吗?系列之2:反射及元数据的性能问题
开发语言·前端·c#
凯瑟琳.奥古斯特2 小时前
力扣1009补码解法C++实现
开发语言·c++·算法·leetcode·职场和发展
2601_963645922 小时前
【2026最新】MATLAB教程(附安装包,非常详细)
开发语言·matlab·信息可视化