Scala多种集合的使用(4)之列表List(ListBuffer)的操作

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)

所谓的人生开挂,不过是厚积薄发! 欢迎评论和转载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scala中的集合分为可变集合和不可变集合两种。不可变集合一旦创建,就不能进行修改。Scala中默认使用不可变集合,如果需要修改集合中的元素,则需要使用可变集合Scala中的集合包括List、Set、Map等。常用的集合操作有: 1. 创建集合:可以使用不可变集合的apply方法或者可变集合的new关键字创建集合。 2. 遍历集合:可以使用for循环、foreach方法或者map方法遍历集合。 3. 过滤元素:可以使用filter方法过滤集合中不符合条件的元素。 4. 转换集合:可以使用map方法将集合中的元素进行转换。 5. 排序集合:可以使用sorted方法对集合中的元素进行排序。 6. 操作集合:可以使用集合的各种方法进行元素的添加、删除、更新等操作。 示例代码: ``` // 创建不可变列表 val list = List(1, 2, 3) // 遍历列表 for (i <- list) { println(i) } // 过滤列表中的偶数 val filteredList = list.filter(_ % 2 == 0) // 转换列表中的元素 val mappedList = list.map(_ * 2) // 排序列表 val sortedList = list.sorted // 创建可变列表 val mutableList = scala.collection.mutable.ListBuffer(1, 2, 3) // 添加元素到可变列表 mutableList += 4 // 删除可变列表中的元素 mutableList -= 2 // 更新可变列表中的元素 mutableList(0) = 0 // 遍历可变列表 mutableList.foreach(println) ``` 以上是Scala集合的基本用法,具体使用时可以根据需要选择不同的集合类型和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值