1.List 列表的创建和添加元素
1) 最常见的创建 list 的方式之一.
- scala> val list = 1 :: 2 :: 3 :: Nil
- list: List[Int] = List(1, 2, 3)
2) 最常见的创建 list 的方式之一.
- scala> val list = List(1,2,3)
- list: List[Int] = List(1, 2, 3)
3) 集合混合类型组成.
- scala> val list = List(1,2.0,33D,4000L)
- list: List[Double] = List(1.0, 2.0, 33.0, 4000.0)
4) 集合混合类型组成, 可以有自己控制. 下面的例子的集合保持了原有集合的类型.
- scala> val list = List[Number](1,2.0,33D,4000L)
- list: List[Number] = List(1, 2.0, 33.0, 4000)
5)range 创建和填充集合.
- scala> val list = List.range(1,10)
- list: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)
6)fill 创建和填充集合.
- scala> val list = List.fill(3)("hello")
- list: List[String] = List(hello, hello, hello)
7)tabulate 创建和填充集合.
- scala> val list = List.tabulate(5)(i => i * i)
- list: List[Int] = List(0, 1, 4, 9, 16)
8) 将集合转化为 List 的形式.
- scala> val list = collection.mutable.ListBuffer(1,2,3).toList
- list: List[Int] = List(1, 2, 3)
9) 将集合转化为 List 的形式.
- scala> "hello".toList
- res41: List[Char] = List(h, e, l, l, o)
10) 创建可变的 list, 方法是使用 ListBuffer, 再将 ListBuffer 转化为 List.
- scala> import scala.collection.mutable.ListBuffer
- import scala.collection.mutable.ListBuffer
- scala> var fruits = new ListBuffer[String]()
- fruits: scala.collection.mutable.ListBuffer[String] = ListBuffer()
- scala> fruits += "apple"
- res42: scala.collection.mutable.ListBuffer[String] = ListBuffer(apple)
- scala> fruits += "orange"
- res43: scala.collection.mutable.ListBuffer[String] = ListBuffer(apple, orange)
- scala> fruits += ("banana","grape","pear")
- res44: scala.collection.mutable.ListBuffer[String] = ListBuffer(apple, orange, banana, grape, pear)
- scala> val fruitsList = fruits.toList
- fruitsList: List[String] = List(apple, orange, banana, grape, pear)
11) 使用:: 方法在列表前添加元素.
- scala> var list = List(2)
- list: List[Int] = List(2)
- scala> list = 1 :: list
- list: List[Int] = List(1, 2)
- scala> list = 9 :: list
- list: List[Int] = List(9, 1, 2)
2. 从 List(ListBuffer) 中删除元素
1)List 是不可变的, 不能从中删除元素, 但是可以过滤掉不想要的元素, 然后将结果赋给一个新的变量.
- scala> val list = List(4,5,2,1,3)
- list: List[Int] = List(4, 5, 2, 1, 3)
- scala> val newList = list.filter(_> 2)
- newList: List[Int] = List(4, 5, 3)
2) 像这样反复的操作结果赋给变量的方式是可以避免的, 通过声明变量 var, 然后将每次操作的结果返回给该变量.
- scala> var list = List(5,2,3,4,1)
- list: List[Int] = List(5, 2, 3, 4, 1)
- scala> list = list.filter(_> 2)
- list: List[Int] = List(5, 3, 4)
3) 如果列表经常变动, 使用 ListBuffer 是一个不错的选择. ListBuffer 是可变的, 因此可以使用可变序列的所有方法从中删除元素.
- import scala.collection.mutable.ListBuffer
- scala> val x = ListBuffer(1,2,3,4,5,6,7,8,9)
- x: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9)
- // 可以按值每次删除一个元素:
- scala> x -= 5
- res45: x.type = ListBuffer(1, 2, 3, 4, 6, 7, 8, 9)
- // 可以一次删除两个或者更多的元素:
- scala> x -= (2,3,4)
- res46: x.type = ListBuffer(1, 6, 7, 8, 9)
- // 可以按位置删除元素:
- scala> x.remove(0)
- res47: Int = 1
- scala> x
- res48: scala.collection.mutable.ListBuffer[Int] = ListBuffer(6, 7, 8, 9)
- //remove 可以从定始位置删除指定数量的元素:
- scala> x.remove(1,3)
- scala> x
- res50: scala.collection.mutable.ListBuffer[Int] = ListBuffer(6)
- // 可以用 --= 的方法从指定的集合中删除元素.
- scala> val x = ListBuffer(1,2,3,4,5,6,7,8,9)
- x: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3, 4, 5, 6, 7, 8,9)
- scala> x --= Seq(1,2,3)
- res51: x.type = ListBuffer(4, 5, 6, 7, 8, 9)
3. 列表的合并或者连接
1) 使用 ++ 方法合并两个列表
- scala> val a = List(1,2,3)
- a: List[Int] = List(1, 2, 3)
- scala> val b = List(4,5,6)
- b: List[Int] = List(4, 5, 6)
- scala> val c = a ++ b
- c: List[Int] = List(1, 2, 3, 4, 5, 6)
2) 使用::: 合并两个列表
- scala> val a = List(1,2,3)
- a: List[Int] = List(1, 2, 3)
- scala> val b = List(4,5,6)
- b: List[Int] = List(4, 5, 6)
- scala> val c = a ::: b
3) 使用 concat 合并两个列表
- scala> val a = List(1,2,3)
- a: List[Int] = List(1, 2, 3)
- scala> val b = List(4,5,6)
- b: List[Int] = List(4, 5, 6)
- scala> val c = List.concat(a,b)
- c: List[Int] = List(1, 2, 3, 4, 5, 6)
来源: https://www.cnblogs.com/zhaohadoopone/p/9529795.html