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

kotlin 两个 list 怎么过滤重复数据

在 Kotlin 中,可以通过多种方式来过滤两个列表中的重复数据。下面是几种常见的方法:

方法 1: 使用 distinct 函数

如果你只想要两个列表中去重后的所有元素,可以使用 distinct 函数:

val list1 = listOf(1, 2, 3, 4, 5)
val list2 = listOf(4, 5, 6, 7, 8)val combinedList = (list1 + list2).distinct()println(combinedList)  // 输出: [1, 2, 3, 4, 5, 6, 7, 8]

方法 2: 使用 toSet 转换为集合去重

你可以将两个列表转换为集合,这样集合会自动去重:

val list1 = listOf(1, 2, 3, 4, 5)
val list2 = listOf(4, 5, 6, 7, 8)val combinedSet = (list1 + list2).toSet()println(combinedSet)  // 输出: [1, 2, 3, 4, 5, 6, 7, 8]

方法 3: 使用 intersect 找到共同元素

如果你只想找出两个列表中的重复元素,可以使用 intersect 函数:

val list1 = listOf(1, 2, 3, 4, 5)
val list2 = listOf(4, 5, 6, 7, 8)val commonElements = list1.intersect(list2)println(commonElements)  // 输出: [4, 5]

方法 4: 使用 filterNot 过滤掉重复元素

如果你想过滤掉 list2 中在 list1 中已经存在的元素:

val list1 = listOf(1, 2, 3, 4, 5)
val list2 = listOf(4, 5, 6, 7, 8)val filteredList2 = list2.filterNot { it in list1 }println(filteredList2)  // 输出: [6, 7, 8]

方法 5: 使用 minus 运算符过滤掉重复元素

如果你想要从 list2 中移除所有在 list1 中存在的元素:

val list1 = listOf(1, 2, 3, 4, 5)
val list2 = listOf(4, 5, 6, 7, 8)val filteredList2 = list2 - list1println(filteredList2)  // 输出: [6, 7, 8]

选择哪种方法取决于你的具体需求,以上方法都可以帮助你过滤和去重两个列表中的数据。

---- 文章由 ChatGPT 生成

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在C语言中,将字符串中的小写字母转换成大写字母
  • java中反射(Reflection)的4个作用
  • Python网络爬虫:Scrapy框架的全面解析
  • SpringBoot彩蛋之定制启动画面
  • [Unity入门01] Unity基本操作
  • python机器学习3
  • IP地址設置的全面指南-okeyproxy
  • MySQL-18-mysql source 执行 sql 文件时中文乱码
  • el-date-picker 开始时间选定后,结束时间不可选择开始时间之前的日期
  • C++ | Leetcode C++题解之第221题最大正方形
  • Laravel任务调度:自动化运维的魔法师
  • LabVIEW与OpenCV图像处理对比
  • 【MySQL基础篇】函数及约束
  • Redis进阶教程
  • 硅纪元视角 | 中国电信“星辰大模型·软件工厂”,两分钟完成应用开发,效率飞跃!
  • [nginx文档翻译系列] 控制nginx
  • centos安装java运行环境jdk+tomcat
  • Date型的使用
  • Docker下部署自己的LNMP工作环境
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Python - 闭包Closure
  • Python_网络编程
  • spark本地环境的搭建到运行第一个spark程序
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端攻城师
  • 悄悄地说一个bug
  • 大数据全解:定义、价值及挑战
  • 移动端高清、多屏适配方案
  • ​第20课 在Android Native开发中加入新的C++类
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #数学建模# 线性规划问题的Matlab求解
  • (31)对象的克隆
  • (C语言)球球大作战
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (二十六)Java 数据结构
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (含笔试题)深度解析数据在内存中的存储
  • (接口自动化)Python3操作MySQL数据库
  • (力扣)1314.矩阵区域和
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (原)本想说脏话,奈何已放下
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)EOS中账户、钱包和密钥的关系
  • (转)ObjectiveC 深浅拷贝学习
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core 版本不支持的问题
  • .net wcf memory gates checking failed
  • .netcore 获取appsettings
  • .NET运行机制
  • @Autowired @Resource @Qualifier的区别
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @Pointcut 使用