1.++[B]   在A元素后面追加B元素

scala> val a = List(1)
a: List[Int] = List(1) scala> val b = List(2)
b: List[Int] = List(2) scala> val c = a ++ b
c: List[Int] = List(1, 2) scala> val d = List('a')
d: List[Char] = List(a) scala> val e = c ++ d
e: List[AnyVal] = List(1, 2, a)

2.++: 与++不同的是使用的右边边的数据类型

scala> val x = List(1)
x: List[Int] = List(1) scala> val y = LinkedList(2)
y: scala.collection.mutable.LinkedList[Int] = LinkedList(2) scala> var z = x ++: y
z: scala.collection.mutable.LinkedList[Int] = LinkedList(1, 2) //y是LinkedList
scala> var z = y ++: x  //使用x的类型
z: List[Int] =List(1, 2)

3.+:  在List的头部增加元素

scala> val x = List(1)
x: List[Int] = List(1) scala> val y = 2 +: x
y: List[Int] = List(2, 1) scala> println(x)
List(1)

4./:应用二进制运算符起始值,从左到右遍历迭代所有元素。

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4) scala> val b = (5 /: a)(_+_)
b: Int = 15 scala> val c = (5 /: a)((x,y) => x + y)
c: Int = 15

5.:+:在后面追加元素

scala> val a = List(1)
a: List[Int] = List(1) scala> val b = a :+ 2
b: List[Int] = List(1, 2) scala> println(a)
List(1)

6.:: 为列表增加单个元素,这是一个右结合的操作符

1 :: List(2, 3) = List(2, 3).::(1) = List(1, 2, 3)

7.::: 在列表的前面追加一个列表,这是一个右结合的操作符

List(1, 2) ::: List(3, 4) = List(3, 4).:::(List(1, 2)) = List(1, 2, 3, 4)

8.:\ 与元素合并后按照操作进行对列表遍历

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4) scala> val b = (a :\ 5)(_+_)
b: Int = 15 scala> val c = (a :\ 5)((x,y) => x + y)
c: Int = 15

9.addString(b: StringBuilder) 对列表中的所有元素迭代将拼接成字符串

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder()
b: StringBuilder = scala> val h = a.addString(b)
h: StringBuilder = 1234

10.addString(b: StringBuilder, sep: String) 使用分隔符输出字符串

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder()
b: StringBuilder = scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4

11.addString(b: StringBuilder, start: String, sep: String, end: String) 定义输出以什么开始、分割、结束

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4) scala> val b = new StringBuilder()
b: StringBuilder = scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)

12. aggregate[B](z: ⇒ B)(seqop: (B, A) ⇒ B, combop: (B, B) ⇒ B): B 对列表内元素进行求和

List('a', 'b', 'c').aggregate(0)({ (sum, ch) => sum + ch.toInt }, { (p1, p2) => p1 + p2 })

13.apply(n: Int) 通过索引选择元素

scala> List('a','b','c').apply(1)
res2: Char = b

14.

Scala List 用法的更多相关文章

  1. Scala中“=>”用法及含义

    => has several meanings in Scala, all related to its mathematical meaning as implication. 1. In a ...

  2. scala函数用法

    直接上代码. package com.test.scala.test object Function { def main(args: Array[String]): Unit = { println ...

  3. scala combineByKey用法说明

    语法是: combineByKey[C](   createCombiner: V => C,   mergeValue: (C, V) => C,   mergeCombiners: ( ...

  4. 【Spark算子】:reduceByKey、groupByKey和combineByKey

    在spark中,reduceByKey.groupByKey和combineByKey这三种算子用的较多,结合使用过程中的体会简单总结: 我的代码实践:https://github.com/wwcom ...

  5. Chisel语言

    1 What is Chisel?      Chisel(Constructing Hardware In a Scala Embedded Language)是一种嵌入在高级编程语言Scala的硬 ...

  6. scala占位符_的用法

    占位符的用途颇多,先介绍几种常用的用法 1.作为"通配符",类似Java中的*.如import scala.math._2.:_*作为一个整体,告诉编译器你希望将某个参数当作参数序 ...

  7. Scala进阶之路-Scala中的枚举用法案例展示

    Scala进阶之路-Scala中的枚举用法案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这 ...

  8. Scala入门4(_的用法)

    从网上找了一篇博客,详细讲解了Scala下划线的用法,这里做保留 博客链接

  9. Scala中_(下划线)的常见用法

    Scala中_(下划线)的常见用法 地址:https://www.jianshu.com/p/0497583ec538

随机推荐

  1. (转)有关thread线程

    Python 标准库提供了 thread 和 threading 两个模块来对多线程进行支持.其中, thread 模块以低级.原始的方式来处理和控制线程,而 threading 模块通过对 thre ...

  2. AWS系列-EC2实例选择镜像

    Centos Ubuntu Redhat 打开EC2控制台,点击启动实例,选择AWS Marketplace Centos.org说明为centos官网镜像 如下图,这种镜像是收费的镜像 Ubuntu ...

  3. 【BZOJ4297】[PA2015]Rozstaw szyn 树形DP

    [BZOJ4297][PA2015]Rozstaw szyn Description 给定一棵有n个点,m个叶子节点的树,其中m个叶子节点分别为1到m号点,每个叶子节点有一个权值r[i].你需要给剩下 ...

  4. CSS3制作旋转导航

    慕课网学习CSS3时,遇到个习题,觉得有必要总结学习下:CSS3制作旋转导航 慕课网习题地址:http://www.imooc.com/code/1883 示例及源码地址:http://codepen ...

  5. 面试之四:JVM内存区域分配

    1.程序计数器(线程私有)[不会OOM] 记录线程执行的代码位置,每个线程各自独有. 2.栈:虚拟机栈和本地方法栈(线程私有)[会OOM和StackOverflow] 虚拟机栈 每个JAVA方法在执行 ...

  6. [转载]Elasticsearch、MongoDB和Hadoop比较

    IT界在过去几年中出现了一个有趣的现象.很多新的技术出现并立即拥抱了“大数据”.稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化.假如你有诸如Elas ...

  7. the ONLY_FULL_GROUP_BY SQL mode is enabled (which it is by default) 用户变量

    MySQL :: MySQL 8.0 Reference Manual :: 5.1.11 Server SQL Modes https://dev.mysql.com/doc/refman/8.0/ ...

  8. datasnap 关于lifecycle的问题

    首先DSServerClass的lifecycle属性有Invocation.Server.Session三种模式: 简单叙述一下三点区别: server:datasnap只初始化一个TDSServe ...

  9. 并发编程 - 线程 - 1.互斥锁/2.GIL解释器锁/3.死锁与递归锁/4.信号量/5.Event事件/6.定时器

    1.互斥锁: 原理:将并行变成串行 精髓:局部串行,只针对共享数据修改 保护不同的数据就应该用不用的锁 from threading import Thread, Lock import time n ...

  10. MapReduce分析流量汇总

    一.MapReduce编程规范 一.MapReduce编程规范 用户编写mr程序主要分为三个部分:Mapper,Reducer,Driver 1.Mapper阶段 (1)用户自定义Mapper类 要继 ...