赞
踩
List本身是一个抽象类,不能直接调用其主构造方法来创建对象,而要通过其伴生对象中的apply方法创建
该apply方法接收一个数组,然后调用ArrayBuffer的toList方法将其转换为List
val list1 = List(23, 65, 87)
println(list1)
第二种创建List对象的方法,利用Nil创建
val list5 = Nil.::(13)
val list6 = 73 :: 32 :: Nil
val list7 = 17 :: 28 :: 59 :: 16 :: Nil
不可变List是LinearSeq,是不能按照索引位置直接访问的,这里调用的是LinearSeqOptimized伴生对象的apply方法
直接按位置截取List然后返回新的List的首位置值(这样似乎性能开销有点大)
//1.访问元素 println(list1(1)) //这里就不能像IndexedSeq一样直接这样修改元素值了 //list1(1) = 12 //2.通过foreach遍历 list1.foreach(println) //3.添加元素 val list2 = 10 +: list1 val list3 = list1 :+ 23 // 4.合并列表 //将list6作为一个元素添加到list7 val list8 = list6 :: list7 //合并两个列表的元素 val list9 = list6 ::: list7 val list10 = list6 ++ list7
//可通过构造器直接创建
val list1: ListBuffer[Int] = new ListBuffer[Int]()
//也可通过apply方法创建
val list2 = ListBuffer(12, 53, 75)
list1.append(15, 62)
list2.prepend(20)
list1.insert(1, 19, 22)
println(list1)
println(list2)
//创建一个新的list,list1和list2本身不变
val list3 = list1 ++ list2
//list2不变,list1末尾加入list的所有元素
list1 ++= list2
//list1不变,list2开头加入list1的所有元素
list1 ++=: list2
//修改指定位置元素
list2(3) = 30
list2.update(0, 89)
//删除指定位置元素
list2.remove(2)
//删除list中的特定值
list2 -= 25
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。