kotlin集合框架

1、集合框架的接口类型对比

 2、不可变和可变List

fun main() {//  不可变List - 不能删除或添加元素val intList: List<Int> = listOf(1,2,3)intList.forEach{println(it) // 1 2 3}println("===============================")// 可变List - 可以删除或添加元素val mutableList = mutableListOf(1,2,3)mutableList.add(4)mutableList.remove(0)mutableList.forEach{println(it) // 2 3 4}
}

3、可变和不可变Map

fun main() {//  不可变Mapval m1:Map<String, Any> = mapOf("name" to "lxc", "age" to 18)println(m1) // {name=lxc, age=18}// 可变mapval m2:MutableMap<String, Any> = mutableMapOf("name" to "lxc", "age" to 18)// 修改元素m2["name"] = "sx"println(m2) // {name=sx, age=18}// 添加元素m2["address"] = "china"println(m2) // {name=sx, age=18, address=china}
}

4、新增或删除便捷写法

// 运算符可重载,可以使用运算符新增或删除集合元素。以后记录
fun main() {val intlist = mutableListOf<Int>()// 循环往集合中添加元素for (i in 0..10) {intlist += i}println(intlist) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]// 循环删除集合元素for (i in 0..10) {intlist -= i}println(intlist) // []
}

5、Pair

kotlin中Pair是一个数据类(定义类似python中的元组)。

public data class Pair<out A, out B>(public val first: A,public val second: B
) : Serializable {/*** Returns string representation of the [Pair] including its [first] and [second] values.*/public override fun toString(): String = "($first, $second)"
}

定义

fun main() {val pair = Pair("name","lxc")println(pair) // (name, lxc)val p2 = "name" to "lxc"println(p2) // (name, lxc)
}

取值

fun main() {// 调用方法取值val pair = Pair("name","lxc")println(pair.first) // nameprintln(pair.second) // lxc// 解构取值val (name,age) = pairprintln("$name, $age") // name, lxc
}

6、总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测——YOLOv10算法解读

论文&#xff1a;YOLOv10: Real-Time End-to-End Object Detection (2024.5.23) 作者&#xff1a;Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han, Guiguang Ding 链接&#xff1a;https://arxiv.org/abs/2405.14458 代码&#xff1a;https://github.com/THU…

C++ | Leetcode C++题解之第165题比较版本号

题目&#xff1a; 题解&#xff1a; class Solution { public:int compareVersion(string version1, string version2) {int n version1.length(), m version2.length();int i 0, j 0;while (i < n || j < m) {long long x 0;for (; i < n && version1[…

【OpenHarmony开发】自定义系统应用之实践

前言 OpenHarmony系统应用是指预装在OpenHarmony操作系统中的应用程序&#xff0c;也称为系统应用。这些应用程序通常由操作系统开发者开发&#xff0c;包括系统设置、电话、短信、浏览器、相机、音乐、视频等常用应用程序。这些应用程序通常具有更高的权限和更深入的系统集成…

机器学习参数寻优:方法、实例与分析

机器学习参数寻优:方法、实例与分析 机器学习模型的性能很大程度上依赖于其参数的选择。参数寻优(Hyperparameter Tuning)是提升模型表现的关键步骤之一。本文将详细介绍主流的参数寻优方法,包括网格搜索(Grid Search)、随机搜索(Random Search)、贝叶斯优化(Bayesia…

反激开关电源EMI电路选型及计算

EMI &#xff1a;开关电源对电网或者其他电子产品的干扰 EMI &#xff1a;传导与辐射 共模电感的滤波电路&#xff0c;La和Lb就是共模电感线圈。这两个线圈绕在同一铁芯上&#xff0c;匝数和相位都相 同(绕制反向)。 这样&#xff0c;当电路中的正常电流&#xff08;差模&…

三十分钟学会RabbitMQ

1、初识MQ 1.1 MQ是什么&#xff1f; MQ(message queue)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO先入先出&#xff0c;只不过队列中存放的内容是message而已&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中…

VMare连接Centos7无法连接网络

VMare连接Centos7无法连接网络 打开ifcfg-ens33文件检查ONBOOT是否为yes&#xff0c;如果是no需要修改成yes vi /ect/syscong ig/network-scripts/ifcfg-ens33 保存后输入ip a命令&#xff0c;能看到自己的ip就是成功了 ip就是成功了

MapReduce笔记

第1章 MapReduce概述 1.1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一个H…

回归算法详解

回归算法详解 回归分析是一类重要的机器学习方法&#xff0c;主要用于预测连续变量。本文将详细讲解几种常见的回归算法&#xff0c;包括线性回归、岭回归、Lasso 回归、弹性网络回归、决策树回归和支持向量回归&#xff08;SVR&#xff09;&#xff0c;并展示它们的特点、应用…

Day9—Spark运行模式及RDD的创建

Spark概述 大数据开发的总体架构 可以看到&#xff0c;在数据计算层&#xff0c;作为Hadoop核心组成的MapReduce可以结合Hive通过类SQL的方式进行数据的离线计算&#xff08;当然也可以编写独立的MapReduce应用程序进行计算&#xff09;&#xff1b;而Spark既可以做离线计算&a…

Spark SQL函数详解:案例解析(第8天)

系列文章目录 1- Spark SQL函数定义&#xff08;掌握&#xff09; 2- Spark 原生自定义UDF函数案例解析&#xff08;掌握&#xff09; 3- Pandas自定义函数案例解析&#xff08;熟悉&#xff09; 4- Apache Arrow框架案例解析&#xff08;熟悉&#xff09; 5- spark常见面试题…

vue+webrtc(腾讯云) 实现直播功能 pc端+移动端

Websocket实现私聊和群聊 1. websocket的概念 1.1. 全双工概念2. websocket实现聊天室 2.1. WebSocket API 2.1.1. 构造方法 2.1.1.1. 语法2.1.1.2. 参数2.1.1.3. 抛出异常2.1.2. 常量2.1.3. 属性2.1.4. 方法2.1.5. 事件3. websocket实现群聊或私聊或图片发送 3.1. 项目的最终…

CI /CD学习

CI/CD概述 CI/CD 是持续集成和持续交付/部署的缩写&#xff0c;旨在简化并加快软件开发生命周期。 持续集成&#xff08;CI&#xff09;是指自动且频繁地将代码更改集成到共享源代码存储库中的做法。持续交付和/或持续部署&#xff08;CD&#xff09;是一个由两部分组成的过程…

02. Java操作系统的并发

1. 前言 本节内容是从操作系统的层面谈并发&#xff0c;本节课程我们需要掌握如下内容&#xff1a; 掌握并发编程的定义&#xff0c;并发编程的定义是了解并发的前提基础&#xff1b;从 CPU 谈并发诞生的意义&#xff0c;一切语言的基础都是操作系统&#xff0c;CPU 的并发与…

排序算法及源代码

堆排序&#xff1a; 在学习堆之后我们知道了大堆和小堆&#xff0c;对于大堆而言第一个节点就是对大值&#xff0c;对于小堆而言&#xff0c;第一个值就是最小的值。如果我们把第一个值与最后一个值交换再对最后一个值前面的数据重新建堆&#xff0c;如此下去就可以实现建堆排…

#01算法的复杂性

时间复杂度 public void print(int n){int a 1; //执行1次for(int i0;i<n;i){//执行n次System.out.println(ai);//执行n次} } 该算法的时间复杂度是O(2n1) 大O会忽略常数、低阶和系数&#xff0c;最终记作O(n); 如果算法的执行时间和数据规模n无关&#xff0c;则是常量阶…

Apple - Authorization Services Programming Guide

本文翻译整理自&#xff1a;Authorization Services Programming Guide&#xff08;更新日期&#xff1a;2011-10-19 https://developer.apple.com/library/archive/documentation/Security/Conceptual/authorization_concepts/01introduction/introduction.html#//apple_ref/d…

JavaScript基础部分知识点总结(Part3)

函数的概念 1. 函数的概念 在JS 里面&#xff0c;可能会定义非常多的相同代码或者功能相似的代码&#xff0c;这些代码可能需要大量重复使用。虽然for循环语句也能实现一些简单的重复操作&#xff0c;但是比较具有局限性&#xff0c;此时我们就可以使用JS 中的函数。函数&…

Tensorflow入门实战 T05-运动鞋识别

目录 一、完整代码 二、训练过程 &#xff08;1&#xff09;打印2行10列的数据。 &#xff08;2&#xff09;查看数据集中的一张图片 &#xff08;3&#xff09;训练过程&#xff08;训练50个epoch&#xff09; &#xff08;4&#xff09;训练结果的精确度 三、遇到的问…

安装VSCode创建注册表出错,RegCreateKey错误码5

今天对VSCode进行做更新安装&#xff0c;谁知道安装到最后弹出下面这么个错误 找到windows下管用的一种解决办法&#xff1a; winR打开运行&#xff0c;输入 regedit找到错误提示中的路径&#xff0c;HKEY_CURRENT_USER\Software\Classes\VSCode.class\open (图中的错误注册表…