这一篇里面有很多关于scala的list的操作的好的知识
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 a = List(1)a: List[Int] = List(1)scala> val b = List(2)b: List[Int] = List(2)scala> val c = a ++ bc: List[Int] = List(1, 2)scala> val d = List('a')d: List[Char] = List(a)scala> val e = c ++ de: List[AnyVal] = List(1, 2, a) |
2.++: 与++不同的是使用的右边边的数据类型
|
1
2
3
4
5
6
7
8
|
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 ++: yz: scala.collection.mutable.LinkedList[Int] = LinkedList(1, 2) //y是LinkedList |
|
1
2
|
scala> var z = y ++: x //使用x的类型z: List[Int] =List(1, 2) |
3.+: 在List的头部增加元素
|
1
2
3
4
5
6
7
8
|
scala> val x = List(1)x: List[Int] = List(1)scala> val y = 2 +: xy: List[Int] = List(2, 1)scala> println(x)List(1) |
4./:应用二进制运算符起始值,从左到右遍历迭代所有元素。
|
1
2
3
4
5
6
7
8
|
scala> val a = List(1,2,3,4)a: List[Int] = List(1, 2, 3, 4)scala> val b = (5 /: a)(_+_)b: Int = 15scala> val c = (5 /: a)((x,y) => x + y)c: Int = 15 |
5.:+:在后面追加元素
|
1
2
3
4
5
6
7
8
|
scala> val a = List(1)a: List[Int] = List(1)scala> val b = a :+ 2b: List[Int] = List(1, 2)scala> println(a)List(1) |
6.:: 为列表增加单个元素,这是一个右结合的操作符
|
1
|
1 :: List(2, 3) = List(2, 3).::(1) = List(1, 2, 3) |
7.::: 在列表的前面追加一个列表,这是一个右结合的操作符
|
1
|
List(1, 2) ::: List(3, 4) = List(3, 4).:::(List(1, 2)) = List(1, 2, 3, 4) |
8.:\ 与元素合并后按照操作进行对列表遍历
|
1
2
3
4
5
6
7
8
|
scala> val a = List(1,2,3,4)a: List[Int] = List(1, 2, 3, 4)scala> val b = (a :\ 5)(_+_)b: Int = 15scala> val c = (a :\ 5)((x,y) => x + y)c: Int = 15 |
9.addString(b: StringBuilder) 对列表中的所有元素迭代将拼接成字符串
|
1
2
3
4
5
6
7
8
|
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) 使用分隔符输出字符串
|
1
2
3
4
5
6
7
8
|
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) 定义输出以什么开始、分割、结束
|
1
2
3
4
5
6
7
8
|
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 对列表内元素进行求和
|
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的操作的好的知识的更多相关文章
- 一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细
一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Scala基础类型与操作
Scala基本类型及操作.程序控制结构 Scala基本类型及操作.程序控制结构 (一)Scala语言优势 自身语言特点: 纯面向对象编程的语言 函数式编程语言 函数式编程语言语言应该支持以下特性: 高 ...
- 《手把手教你》系列技巧篇(五十)-java+ selenium自动化测试-字符串操作-上篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- 《手把手教你》系列技巧篇(五十一)-java+ selenium自动化测试-字符串操作-下篇(详解教程)
1.简介 自动化测试中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥这里介绍两种 ...
- 3-(基础入门篇)稍微了解一下(需要知道的关于Lua的一些基本的知识)
http://www.cnblogs.com/yangfengwu/p/8948935.html 基础教程源码链接如果失效,请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 htt ...
- Scala的文件读写操作与正则表达式
目录 在本篇博客中你将会学习并了解常用的文件处理任务,例如读取文件的一行文本,本博客的要点包含: Source.fromFile(...).getLines.toArray 输出文件所有行 Sourc ...
- 《手把手教你》系列进阶篇之3-python+ selenium自动化测试 - python几种骚操作你都知道吗?(详细教程)
1. 简介 这篇文章主要是给小伙伴或者童鞋们介绍和分享 python几种骚操:读取配置文件.获取根目录的相对路径.获取系统时间和格式化时间显示.字符串切割等等操作.为后边的自动化框架打下一个结实的基础 ...
- 11. Scala数据结构(下)-集合操作
11.1 集合元素的映射-map映射操作 11.1.1 看一个实际需求 要求:请将List(3,5,8)中所有的元素都*2,将其结果放到一个新的集合中返回,即返回一个新的List(6,10,16),请 ...
随机推荐
- 光学字符识别OCR-7语言模型
由于图像质量等原因,性能再好的识别模型,都会有识别错误的可能性,为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果.这是改进OCR识别效果的重要方法之一. ...
- [转] immutability-helper 插件的基本使用(附源码)
概念 先理解一下 Immutable 的概念,Immutable数据就是一旦创建,就不能更改的数据.每当对Immutable对象进行修改的时候,就会返回一个新的Immutable对象,以此来保证数据的 ...
- jmeter进行dubbo接口测试
最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息. 这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试. ...
- 2章 perl标量变量
标量变量 单单存储一个值得变量 ,单个标量值 $name 为变量 区分大小写 $barney=$barney*2 第一次 取值 等号右边 :第二次 赋值 等号左边 双目操作符 ...
- 爬虫Scrapy框架-2爬取网站视频详情
爬取视频详情:http://www.id97.com/ 创建环境: movie.py 爬虫文件的设置: # -*- coding: utf-8 -*- import scrapy from movi ...
- [已解决]使用 apt-get update 命令提示 ...中被配置了多次
报错:W: 目标 Sources (main/source/Sources) 在 /etc/apt/sources.list:2 和 /etc/apt/sources.list:7 中被配置了多次 v ...
- Linux命令之必须掌握的十条命令
Linux现如今已经成为了软件行业最流行的操作系统,掌握Linux就成为了每一个开发者必备的专业技能. 为了方便大家学习,大学君在此为大家整理了在使用Linux时必须掌握的十条命令,希望大家能熟练掌握 ...
- 【bzoj1954】Pku3764 The xor-longest Path Trie树
题目描述 给定一棵n个点的带权树,求树上最长的异或和路径 输入 The input contains several test cases. The first line of each test ...
- CS231n笔记 Lecture 2 Image Classification pipeline
距离度量\(L_1\) 和\(L_2\)的区别 一些感性的认识,\(L_1\)可能更适合一些结构化数据,即每个维度是有特别含义的,如雇员的年龄.工资水平等等:如果只是一个一般化的向量,\(L_2\)可 ...
- ACM程序设计选修课——1065: Operations on Grids(暴力字符串)
1065: Operations on Grids Time Limit: 3 Sec Memory Limit: 128 MB Submit: 17 Solved: 4 [Submit][Sta ...