这一篇里面有很多关于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 ++ 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.++: 与++不同的是使用的右边边的数据类型
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 ++ : y z : 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 + : x y : 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 = 15 scala> 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 : + 2 b : 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 = 15 scala> 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, ", " ) res 0 : 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(" , ", " , ")" ) res 5 : 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 }, { (p 1 , p 2 ) = > p 1 + p 2 }) |
13.apply(n: Int) 通过索引选择元素
1
2
|
scala> List( 'a' , 'b' , 'c' ).apply( 1 ) res 2 : 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),请 ...
随机推荐
- luogu2564 [SCOI2009]生日礼物
排序枚举左端点,则右端点必定不降 #include <algorithm> #include <iostream> #include <cstring> #incl ...
- WebApp开发入门
web app 的技术平台很多,如adobe phonegap.sencha touch.appcan(国产).dcloud(国产)平台.我选择了dcloud平台,原因:简单,容易上手. web ap ...
- C++ 获取网页源码码的操作
#include <stdio.h>#include <windows.h>#include <wininet.h>#pragma comment(lib,&quo ...
- Leetcode33--->Search in Rotated Sorted Array(在旋转数组中找出给定的target值的位置)
题目: 给定一个旋转数组,但是你不知道旋转位置,在旋转数组中找出给定target值出现的位置:你可以假设在数组中没有重复值出现 举例: (i.e., 0 1 2 4 5 6 7 might becom ...
- Leetcode with Python
1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...
- List容器——ArrayList及常用API
List: ① List容器是有序的collection(也称为序列).此接口的用户可以对List容器中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜 ...
- API经济时代的思考(转载目的:为之后写API-first模式的生命周期治理做准备)
原文地址:API经济时代的思考 感觉这篇博客还不错,个人赞同其大部分的内容,借鉴参考一下,懒得自己写了(关键是不一定能轻松写得更好,嘿嘿,偷懒啦) 接下来会写关于API经济的概念下,如何进行AP ...
- 【bzoj4247】挂饰 背包dp
题目描述 JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直接挂在手机上, ...
- spring中MessageSource的配置使用方法2--ReloadableResourceBundleMessageSource
如何在spring mvc框架中实现MessageSource来管理国际资源文件呢 如下: 1.在applicationContext.xml文件内配置如下 <span style=" ...
- Tomcat和JVM的内存配置
原文路径:https://www.cnblogs.com/pangxiansheng/p/5378537.html JVM内存分配设置的参数有四个 -Xmx Java Heap最大值,默认值为物理内存 ...