41_集合_List(链表)
说明
* 1. 链表的实现
分类
* 不可变List、可变List
可变&不可变的区别
* 不可变 : 链表初始化时,长度固定,不可修改
* 可变 : 链表长度可改变
import scala.collection.mutable.ListBuffer /** * @author gaocun * @create 2021-10-29 6:51 PM */ object List_02 { /* * 说明 * 1. 链表的实现 * 分类 * 不可变List、可变List * 可变&不可变的区别 * 不可变 : 链表初始化时,长度固定,不可修改 * 可变 : 链表长度可改变 * */ } //不可变List object ListTest extends App { //1. 初始化 var list: List[Int] = List(1, 2, 3, 4) //2. 打印list println(list) println(list.mkString("--")) //3. 添加元素 (返回新对象,不会对原对象改变) //尾部添加 var list1 = list.appended(5) println(list) println(list1) var list2 = list :+ 6 //底层调用appended方法 println(list2) //头部添加 var list3 = list.prepended(0) println(list3) var list4 = 5 +: list //底层调用prepended println(list4) var list5 = 0 :: list println(list5) println(list) //4. 获取指定位置的数 println(list(0)) println(list(1)) //获取头部元素 println(list.head) println(list.tail) //5. 遍历list list.foreach(println) for (e <- list) { println(e) } } //可变List object ListBufferTest extends App { //初始化 var list = ListBuffer(1, 2, 3, 4) //打印 println(list) //添加元素 (修改自身对象) //头部添加 0 +=: list // 底层调用prepend方法 list.prepend(-1) println(list) //尾部添加 list += 5 //底层调addOne方法 list.append(6) //底层调addOne方法 list.addOne(7) println(list) println("=====================") //添加元素 (不改变自身对象,返回新对象) //头部添加 var list1 = list.prepended(0) println(list) println(list1) var list2 = -2 +: list // 底层调用prepended方法 //尾部添加 var list3 = list.appended(8) println(list3) println("======================") //删除元素 (改变对象自身) //指定索引删除,会报数组越界错误,返回被删除的元素 println(list) println("根据元素位置删除 :" + list.remove(1)) println(list += 99) //根据元素内容删除,返回删除后的对象指针 println("根据元素内容删除 :" + (list -= 88)) println(list) //获取头部元素 println("获取head :" + list.head) //获取尾部元素 println("获取tail :" + list.tail) println("获取size :" + list.size) println("获取length :" + list.length) }
【推荐】国内首个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带你走进微服务的世界