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)

scala的多种集合的使用(4)之列表List(ListBuffer)的操作的更多相关文章

  1. scala的多种集合的使用(5)之数组Array(ArrayBuffer)的操作

    1.创建和更新数组的不同方式 1)定义一个数组的初始大小和类型,随后填充值. scala> val array = new Array[String](3) array: Array[Strin ...

  2. scala的多种集合的使用(6)之映射Map的操作方法

    1.创建映射 1)创建不可变的映射 scala> val status = Map(1 -> "a",2 -> "b") status: sc ...

  3. scala的多种集合的使用(1)之集合层级结构与分类

    一.在使用scala集合时有几个概念必须知道: 1.谓词是什么? 谓词就是一个方法,一个函数或者一个匿名函数,接受一个或多个函数,返回一个Boolean值. 例如:下面方法返回true或者false, ...

  4. scala的多种集合的使用(3)之遍历集合的方法

    遍历集合的方法 1.用foreach循环遍历一个集合 foreach接收一个函数作为参数.定义的函数应该接收一个元素作为输入参数,然后不要返回任何的东西.输入的参数的类型应该匹配集合中的类型.随着fo ...

  5. scala的多种集合的使用(2)之集合常用方法

    一.常用的集合方法 1.可遍历集合的常用方法 下表列出了Traverable在所有集合常用的方法.接下来的符号: c代表一个集合 f代表一个函数 p代表一个谓词 n代表一个数字 op代表一个简单的操作 ...

  6. scala的多种集合的使用(8)之队列和栈的操作方法

    1.使用队列 队列是一种那个先进先出的队列.1)创建一个队列. scala> import scala.collection.mutable.Queue import scala.collect ...

  7. scala的多种集合的使用(7)之集Set的操作方法

    1.给集添加元素 1)用+=.++=和add给可变集添加元素. scala> var set = scala.collection.mutable.Set[Int]() set: scala.c ...

  8. Scala 运算符和集合转换操作示例

    Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...

  9. Programming In Scala笔记-第十七章、Scala中的集合类型

    本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...

随机推荐

  1. SUSE12SP3-Mycat(2)Schema.xml配置详解

    简介 Schema.xml 作为 MyCat 中重要的配置文件之一,管理着 MyCat 的逻辑库.表.分片规则.DataNode 以及 DataSource.弄懂这些配置,是正确使用 MyCat 的前 ...

  2. wtf!rds数据同步居然出问题了--菜鸟db的数据修复历程

    由于一次上线操作的数据变更太多,导致执行时间很长! 由于做手动主从关系,所以操作落在了主库上. 由于主从关系不是对整个库的操作,所以在有表新增的地方,添加了dts新的同步关系. db变更完成后,就发布 ...

  3. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史

    ---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...

  4. 如何加速golang写业务的开发速度

    如何加速golang写业务的开发速度 不要忌讳panic golang写业务代码经常会被吐槽,写业务太慢了,其中最大的吐槽点就是,处理各种error太麻烦了.一个项目中,会有30%或者更多的是在处理e ...

  5. Redis学习笔记~Twenproxy所起到的作用

    回到目录 Twenproxy除了可以作为redis的代理,它同样支持memerycached.我这里主要了解Twemproxy在redis集群上的解决方案.Twemproxy除了完美的解决了分片,路由 ...

  6. Fescar(Seata)-Springcloud流程分析-2阶段

    上文我们分析了fescar的一阶段执行过程.在一阶段中,服务起始方发起全局事务并注册到TC.在调用协同服务时,协同服务的事务分支事务会先完成阶段一的事务提交或回滚,并生成事务回滚的undo_log日志 ...

  7. [开发技巧]·HTML检测输入已完成自动填写下一个内容

    [开发技巧]·HTML检测输入已完成自动填写下一个内容 个人网站 --> http://www.yansongsong.cn 在上一个博客中简易实现检测输入已完成,我们实现了检测输入已完成,现在 ...

  8. 树莓派SSH连接快速教程

    树莓派系统一般都默认自带ssh 1.首先检查是否安装ssh没 dpkg - l | grep openssh 如果出现几个openssh-xxx,说明你已经安装了 如果没有 2.SSH服务安装 sud ...

  9. 使用JsonProperty Attribute修改返回json

    使用JsonProperty Attribute修改返回 json 值的name 本例使用JsonPropertyAttribute在序列化为JSON时更改属性的名称. public class Vi ...

  10. C#实现.ini文件读写操作

    1.ini文件是什么?        见百度百科:https://baike.baidu.com/item/ini%E6%96%87%E4%BB%B6/9718973?fr=aladdin 2.C#语 ...