https://www.cnblogs.com/weilunhui/p/5658860.html

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
scala> val = List(1)
a: List[Int] = List(1)
 
scala> val = List(2)
b: List[Int] = List(2)
 
scala> val = a ++ b
c: List[Int] = List(12)
 
scala> val = List('a')
d: List[Char] = List(a)
 
scala> val = c ++ d
e: List[AnyVal] = List(12, a)

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

1
2
3
4
5
6
7
8
scala> val = List(1)
x: List[Int] = List(1)
 
scala> val = LinkedList(2)
y: scala.collection.mutable.LinkedList[Int] = LinkedList(2)
 
scala> var = x ++: y
z: scala.collection.mutable.LinkedList[Int] = LinkedList(12//y是LinkedList
1
2
scala> var = y ++: x  //使用x的类型
z: List[Int] =List(12)

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

1
2
3
4
5
6
7
8
scala> val = List(1)
x: List[Int] = List(1)
 
scala> val = 2 +: x
y: List[Int] = List(21)
 
scala> println(x)
List(1)

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

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

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

1
2
3
4
5
6
7
8
scala> val = List(1)
a: List[Int] = List(1)
 
scala> val = :2
b: List[Int] = List(12)
 
scala> println(a)
List(1)

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

1
1 :: List(23= List(23).::(1= List(123)

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

1
List(12::: List(34= List(34).:::(List(12)) = List(1234)

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

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

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

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

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

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

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

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

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

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

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

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

这一篇里面有很多关于scala的list的操作的好的知识的更多相关文章

  1. 一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细

    一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细

  2. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  3. Scala基础类型与操作

    Scala基本类型及操作.程序控制结构 Scala基本类型及操作.程序控制结构 (一)Scala语言优势 自身语言特点: 纯面向对象编程的语言 函数式编程语言 函数式编程语言语言应该支持以下特性: 高 ...

  4. 《手把手教你》系列技巧篇(五十)-java+ selenium自动化测试-字符串操作-上篇(详解教程)

    1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...

  5. 《手把手教你》系列技巧篇(五十一)-java+ selenium自动化测试-字符串操作-下篇(详解教程)

    1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...

  6. 3-(基础入门篇)稍微了解一下(需要知道的关于Lua的一些基本的知识)

      http://www.cnblogs.com/yangfengwu/p/8948935.html 基础教程源码链接如果失效,请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 htt ...

  7. Scala的文件读写操作与正则表达式

    目录 在本篇博客中你将会学习并了解常用的文件处理任务,例如读取文件的一行文本,本博客的要点包含: Source.fromFile(...).getLines.toArray 输出文件所有行 Sourc ...

  8. 《手把手教你》系列进阶篇之3-python+ selenium自动化测试 - python几种骚操作你都知道吗?(详细教程)

    1. 简介 这篇文章主要是给小伙伴或者童鞋们介绍和分享 python几种骚操:读取配置文件.获取根目录的相对路径.获取系统时间和格式化时间显示.字符串切割等等操作.为后边的自动化框架打下一个结实的基础 ...

  9. 11. Scala数据结构(下)-集合操作

    11.1 集合元素的映射-map映射操作 11.1.1 看一个实际需求 要求:请将List(3,5,8)中所有的元素都*2,将其结果放到一个新的集合中返回,即返回一个新的List(6,10,16),请 ...

随机推荐

  1. jcenter maven 库

    先了解compile ‘com.squareup.okhttp:okhttp:2.4.0’的意义 首先我们要了解compile ‘com.squareup.okhttp:okhttp:2.4.0’这一 ...

  2. Centos 7下利用crontab定时执行任务详解

    一 cron服务 cron服务是Linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond ...

  3. 用virtualbox+模拟串口+CDT调试linux内核 TCP/IP协议栈-起步

    经常有人问一台机器如何将hello经网络发送给另一台机器,我确实是不知道,只能看代码了. 说明:本人对内核的研究学习也是刚刚起步,有很多不了解的,所以文中可能会有一些"一本正经的胡扯&quo ...

  4. day03_11 if语句实现猜年龄01

    老男孩猜年龄游戏 age_of_princal = 56 guess_age = int( input(">>:") ) #以下为伪代码 ''' if guess_ag ...

  5. 【LeetCode】Remove Duplicates from Sorted Array(删除排序数组中的重复项)

    这道题是LeetCode里的第26道题. 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数 ...

  6. python递归函数、二分法、匿名函数、(sorted、map、filter内置函数应用)

    #函数递归是一种特殊的函数嵌套调用,在调用一个函数的过程中,又直接或间接的调用该函数本身递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规模都必须有所减少 回溯:递 ...

  7. 零基础自学用Python 3开发网络爬虫

    原文出处: Jecvay Notes (@Jecvay) 由于本学期好多神都选了Cisco网络课, 而我这等弱渣没选, 去蹭了一节发现讲的内容虽然我不懂但是还是无爱. 我想既然都本科就出来工作还是按照 ...

  8. ACM程序设计选修课——1057: Beautiful Garden(模拟+耐心调试)

    1057: Beautiful Garden Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 25  Solved: 12 [Submit][Statu ...

  9. HDU——1303Doubles(水题,试手二分查找)

    Doubles Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  10. Eclipse项目类型转换

    例如,将一个普通java项目改为动态Web项目: 在eclipse的项目上点右键,刷新项目. 在项目上点右键,进入属性(properties) 在左侧列表项目中点击选择“Project Facets” ...