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)) // 並集 } }