這一篇裏面有很多關於scala的list的操作的好的知識
阿新 • • 發佈:2018-03-10
str def seq gpo table sta sum 一個 AC
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的操作的好的知識