这一篇里面有很多关于scala的list的操作的好的知识
2024-08-29 21:18:46
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 |
最新文章
- Redis实战阅读笔记——第二章
- Android -- 思考 -- 为什么要在项目中使用MVP模式
- NHibernate系列文章目录
- UML类图中的六种关系及实例【补充】
- Linux中关于安装包的分析。——Arvin
- 存储构造题(Print Check)
- [mondrian] 分析一个简单的schema文件
- Java Concurrency - Condition
- scaleform mobile sdk for android 多点触摸 修正
- zzzz
- NSString NSCFString区别
- [RxJS] Combining Streams with CombineLatest
- 数组名和指针的深入理解(C++)
- Atitit.软件仪表盘(2)--vm子系统--资源占用监測
- 多线程手写Future模式
- 关于Java的volatile
- 2018-2019-2 网络对抗技术 20165328 Exp2 后门原理与实践
- Agens层次聚类
- makefile中.PHNOY的用法
- mod_conference ESL控制一(原理)
热门文章
- HDU 4812 D Tree 树分治
- Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
- 0014.Linux环境搭建 Python环境搭建
- 微信小程序开发 -- 点击右上角实现转发功能
- [uiautomator篇] [4] 运行成功的日志打印---最后写一个脚本来实现
- 如果奇迹有颜色,那么一定是暴力or模拟比较6
- JQuery常用的HTML页控制取值、赋值
- iOS开发 UILabel实现自适应高宽
- 扩展kmp--模板解析
- HDU——1213How Many Tables(并查集按秩合并)