当前位置: 首页 > news >正文

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)

相关文章:

  • wordpress ip设置baidu优化
  • 网站目录做外链新闻头条国内大事
  • 网站建设公司网络服务/国内推广平台
  • 石家庄搭建网站/市场营销方案范文5篇
  • 无上升级系统/seo在线培训课程
  • 如何快速做网站关键词/结构优化是什么意思
  • Stable Diffusion+Pyqt5: 实现图像生成与管理界面(带保存 + 历史记录 + 删除功能)——我的实验记录(结尾附系统效果图)
  • 【C++基础-关键字】:extern
  • 深入理解Java Optional:告别NullPointerException的优雅方式
  • PMP 考试以及学习资料
  • 艾尔登法环地图不能使用鼠标移动或点击传送点原因和设置方法
  • 计算机视觉与深度学习 | 视觉里程计(Visual Odometry, VO)学习思路总结
  • K8S学习之基础七十五:istio实现灰度发布
  • 探秘Transformer系列之(25)--- KV Cache优化之处理长文本序列
  • 架构师论文《论模型驱动软件开发方法在智能制造转型实践中的应用》
  • ​MySQL面试题:索引的底层原理与优化策略​
  • Langflow 远程命令执行漏洞复现(CVE-2025-3248)(附脚本)
  • Python代码缩进统一规范
  • 微信小程序事件详解
  • 6.3es新特性web worker
  • 基于 OpenHarmony 5.0 的星闪轻量型设备应用开发——Ch2 OpenHarmony LiteOS-M 内核应用开发
  • 【系统架构】AI时代下,系统架构师如何修炼
  • 2025.4.8 dmy NOI模拟赛总结(转化贡献方式 dp, 交互(分段函数找断点),SAM上计数)
  • 【spark-submit】--提交任务
  • LeetCode算法题(Go语言实现)_38
  • 【01BFS】# P4667 [BalticOI 2011] Switch the Lamp On 电路维修 (Day1)|普及+