scala中list集合的操作與總結

2021-09-08 04:51:27 字數 2140 閱讀 5033

/**

* created by root

* description : list

*/object listtest

val a = list(1,2,3,4)

for (i <-a) println(i)

//將0新增到a中

val b = 0::a

for (i <-b) println(i)

val c = list("x","y","z")

//兩個list合併

val d =a ::: c

for (i <-d) println(i)

println(a.head)

//返回第乙個元素

println(a.tail) //

返回除第乙個元素的list

println(a.isempty) //

判斷list是否為空

//取出list中的偶數;

//filrter高階函式:他的引數就是乙個匿名函式,匿名引數輸入引數x就代表的是列表中的乙個元素,

//filter會遍歷列表中的每個元素,每個元素就去套用傳進來的匿名函式的判斷條件,如果判斷為true就保留這個元素

val e = a.filter(x => x % 2 ==0)

println(e)

//filter簡寫

val e1 = a.filter(_ % 2 ==0)

println(e1)

//過濾字串中的數字

val str = "123 hello scala 168"val f = str.tolist.filter(x =>character.isdigit(x))

println(f)

//取到某個字元之前的所有字元

val g = str.tolist.takewhile(x => x != 's')

println(g)

//map高階函式:將每個元素進行轉換對映

val h = c.map(x =>x.touppercase())

println(h)

//map簡寫

val h1 =c.map(_.touppercase)

println(h1)

//取出列表中的偶數,並且為每個元素加上100

val k = a.filter(_ % 2 ==0).map(_ + 100)

println(k)

//兩層list

val q = list(a,list(4,5,6))

//取出q中的所有偶數;第一步:map獲取每個list,第二步:filter過濾每個list中的偶數元素

val r = q.map(x => x.filter(y => y % 2 == 0))

println(r)

//簡寫 val r1 = q.map(_.filter(_ % 2 ==0))

println(r1)

//flatmap高階函式:是將list中的結果打平

val p = q.flatmap(_.filter(_ % 2 == 0))

println(p)

//總結map與flatmap區別

//map:返回的結果和原list結構一致,如果是兩層,返回的就是兩層;r: list[list[int]] = list(list(2,4), list(4, 6))

//flatmap:返回的結果只有一層list結構; p: list[int] = list(2, 4, 4, 6)

//規約操作:reduceleft(op:(t,t) => t)

//求list中元素的和

val m = a.reduceleft((x,y) => x +y)

println(m)

//reduceleft簡寫

val m1 = a.reduceleft(_ +_)

println(m1)

//規約操作:foldleft(z:u)(op:(u,t)) => u

//求list中元素的和

val n = a.foldleft(0)((x,y) => x+y)

println(n)

//簡寫 val n1 = a.foldleft(0)(_ +_)

println(n1)

}

Scala中List集合與Map集合的相互轉換

list集合轉換成map集合object demo println tuples 將list轉換成map val map map string,int tuples.tomap println map 結果為 list dog,3 tiger,5 lion,4 cat,3 panther,7 eag...

scala中List的常見操作

參考自 下面是list的常用方法,當然了這不是所有的.但都是最常用的.具體看下面的demo.具體可以看 裡面的注釋 新建空listbuffer並新增元素 返回最後乙個元素 println list.last 在指定的位置 end 開始查詢元素最後出現的位置 println list.lastinde...

scala操作List函式

1.定義反轉函式 def rev t xs list t list t xs 2.列表排序 list t stor 3.列表歸併排序 原理 首先如果列表長度為零或僅有乙個元素,它就已經排好序的,因此可以不加改變的返回。長列表可以拆成兩個子列表,每個包含大概一半的原表元素。每個子列表採用堆排序函式的遞...