list是一个由首元素(head首元素)和其余元素组成的子List(tail), list还提供了idEmpty, 空列表nil等函数 。它是一个抽象类, 不能使用new来创建,需要使用伴生对象创建它。
list创建示例
package day3 object demo_list { def main(args: Array[String]): Unit = { // list的创建 val list1 = Nil val list2 = List[Int](1,2,3,4,5) println(list1.isEmpty) println(list2.isEmpty) println(list2.head) println(list2.tail) val list3 = getListVale(list2) println(list3) } def getListVale(list: List[Int]): Int ={ if (list.isEmpty) 0 else list.head + getListVale(list.tail) } }
list的增删改查--增加
package day3 object demo_listcrdb { def main(args: Array[String]): Unit = { // 定义两个不可变列表 val left = List[Int](1,2,3,4,5,6,7,8) val right = List[Int](6,7,8,9,10) println("添加一个元素") // 增加 在left头部位置加一个6,= var ret_list = left.+:(6) // 产生一个新的不可变的列表 var ret_list2 = left.::(9) // 产生一个新的不可变的列表 ret_list2 = left.:+(22) // 在尾部加一个数值 println(ret_list) println(ret_list2) println(left) println("-----------新增一个集合") ret_list2 = left.++:(right) // left左侧添加一个集合 ret_list2 = left.:::(right) // left左侧添加一个集合 println(ret_list2) ret_list2 = left.++(right) // 在left末尾加一个集合 println(ret_list2) } }
删改查
package day3 object demo_listcrdb { def main(args: Array[String]): Unit = { // 定义两个不可变列表 val left = List[Int](1,2,2,2,5,6,7,8) val right = List[Int](6,7,3,8,9,10) println("添加一个元素") // 增加 在left头部位置加一个6,= var ret_list = left.+:(6) // 产生一个新的不可变的列表 var ret_list2 = left.::(9) // 产生一个新的不可变的列表 ret_list2 = left.:+(22) // 在尾部加一个数值 println(ret_list) println(ret_list2) println(left) println("-----------新增一个集合") ret_list2 = left.++:(right) // left左侧添加一个集合 ret_list2 = left.:::(right) // left左侧添加一个集合 println(ret_list2) ret_list2 = left.++(right) // 在left末尾加一个集合 println("list2---->" + ret_list2) println("------------删除") val list3 = right.dropWhile(n=>n>5) // 从right左侧开始删除大于5的数,直到第一个条件不满足为止 println(list3) println("------------修改") //list为不可变集合, 不可修改 println("------------查询") println(left(0), left(1), left(2)) //通过索引查询 println(left.length) // 列表长度 println(left.isEmpty) //是否为空 println(left.contains(4)) // 是否包含4 println(left.mkString("[",",","]")) // 格式化 // 高队函数 都是生成新列表 println(left.distinct) // 列表去重 println(left.reverse) // 列表反转 println(left.take(3)) // 获取集合中的前三个元素 println(left.union(right)) // 并集 } }