46_集合_衍生操作
集合的衍生操作
* 1. 获取集合的head
* 2. 获取集合的tail(返回去掉head节点的集合)
* 3. 获取集合最后一个数据
* 4. 获取集合初始元素(不包含最后一个)
* 5. 集合反转
* 6. 获取前(后)n个元素
* 7. 去掉前(后)n个元素
* 8. 并集
* 9. 交集
* 10. 差集
* 11. 拉链
* 说明
* 1. 相同位置上的元素组成 2元元组,返回2元元组的List
* 2. 如果两个集合元素个数不同,那么会将同等数量的数据进行拉链,多余的省略不用
* 12. 滑窗
* 说明
* 1 2 3 4 5 6
* 窗口内元素:2 步长:1
* 返回 1-2 2-3 3-4 4-5 5-6
* */
/* * 集合的衍生操作 * 1. 获取集合的head * 2. 获取集合的tail(返回去掉head节点的集合) * 3. 获取集合最后一个数据 * 4. 获取集合初始元素(不包含最后一个) * 5. 集合反转 * 6. 获取前(后)n个元素 * 7. 去掉前(后)n个元素 * 8. 并集 * 9. 交集 * 10. 差集 * 11. 拉链 * 说明 * 1. 相同位置上的元素组成 2元元组,返回2元元组的List * 2. 如果两个集合元素个数不同,那么会将同等数量的数据进行拉链,多余的省略不用 * 12. 滑窗 * 说明 * 1 2 3 4 5 6 * 窗口内元素:2 步长:1 * 返回 1-2 2-3 3-4 4-5 5-6 * */ object TestList extends App { // 初始化 var list1 = List(1, 2, 3, 4, 5) var list2 = List(4, 5, 6, 7, 8) //1. 获取集合的head println("list1-head:%d", list1.head) println("list2-head:%d", list2.head) //2. 获取集合的tail(返回去掉head节点的集合) println(list1.tail) println(list2.tail) //3. 获取集合最后一个数据 println(list1.last) println(list2.last) //4. 获取集合初始元素(不包含最后一个) println(list1.init) println(list2.init) //5.集合反转 println(list1.reverse) println(list2.reverse) //6.获取前(后)n个元素 println(list1.take(3)) // 前 println(list2.takeRight(3)) //后 //7.去掉前(后)n个元素 println(list1.drop(3)) // 前 println(list2.dropRight(3)) //后 //8.并集 var list3 = list1.concat(list2) var list4 = list1.union(list2) //底层调concat方法 println(list3) println(list4) //9.交集 - intersection var list5 = list1.intersect(list2) println(list5) //10.差集 - difference var list6 = list1.diff(list2) println(list6) //11.拉链 - zipper var list7: List[(Int, Int)] = list1.zip(list2) println(list7) //12.滑窗 - Sliding window var list8 = list1.sliding(2) //指定窗口内元素个数,滑动步长默认为1 var list9 = list1.sliding(2, 2) //指定窗口内元素个数,指定步长为2 println(list8.mkString("-")) println(list9.mkString("-")) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界