scala之list用法

Scala 列表類似於數組,它們所有元素的類型都相同,但是它們也有所不同:列表是不可變的,值一旦被定義了就不能改變,其次列表 具有遞歸的結構(也就是鏈接表結構)而數組不是

package test
 
object listDemo {
  def main(args: Array[String]): Unit = {
    val list: List[String] = List("a", "b" ,"a")
    //爲列表預添加元素
    println("A" +: list)
    //在列表開頭添加元素
    println("c" :: list)
    //在列表開頭添加指定列表的元素
    println(List("d","e") ::: list)
    //複製添加元素後列表
    println(list :+ "1")
    //將列表的所有元素添加到 StringBuilder
    val sb = new StringBuilder("f")
    println(list.addString(sb))
    //指定分隔符
    println(list.addString(sb,","))
    //通過列表索引獲取元素
    println(list.apply(0))
    //檢測列表中是否包含指定的元素
    println(list.contains("a"))
    //將列表的元素複製到數組中,在給定的數組xs中填充該列表的最多爲長度(len)元素,從start位置開始。
    val a = Array('a', 'b', 'c')
    val b : Array[Char] = new Array(5)
    a.copyToArray(b,0,1)
    b.foreach(println)
    //去除列表的重複元素,並返回新列表
    println(list.distinct)
    //丟棄前n個元素,並返回新列表
    println(list.drop(1))
    //丟棄最後n個元素,並返回新列表
    println(list.dropRight(1))
    //從左向右丟棄元素,直到條件p不成立
    println(list.dropWhile(_.equals("a")))
    //檢測列表是否以指定序列結尾
    println(list.endsWith(Seq("a")))
    //判斷是否相等
    println(list.head.equals("a"))
    //判斷列表中指定條件的元素是否存在,判斷l是否存在某個元素
    println(list.exists(x=> x == "a"))
    //輸出符號指定條件的所有元素
    println(list.filter(x=> x.equals("a")))
    //檢測所有元素
    println(list.forall(x=> x.startsWith("b")))
    //將函數應用到列表的所有元素
    list.foreach(println)
    //獲取列表的第一個元素
    println(list.head)
    //從指定位置 from 開始查找元素第一次出現的位置
    println(list.indexOf("b",0))
    //返回所有元素,除了最後一個
    println(list.init)
    //計算多個集合的交集
    println(list.intersect(Seq("a","b")))
    //檢測列表是否爲空
    println(list.isEmpty)
    //創建一個新的迭代器來迭代元素
    val it = list.iterator
    while (it.hasNext){
      println(it.next())
    }
    //返回最後一個元素
    println(list.last)
    //在指定的位置 end 開始查找元素最後出現的位置
    println(list.lastIndexOf("b",1))
    //返回列表長度
    println(list.length)
    //通過給定的方法將所有元素重新計算
    list.map(x=> x+"jason").foreach(println)
    //查找最大元素
    println(list.max)
    //查找最小元素
    println(list.min)
    //列表所有元素作爲字符串顯示
    println(list.mkString)
    //使用分隔符將列表所有元素作爲字符串顯示
    println(list.mkString(","))
    //列表反轉
    println(list.reverse)
    //列表排序
    println(list.sorted)
    //檢測列表在指定位置是否包含指定序列
    println(list.startsWith(Seq("a"),1))
    //計算集合元素之和,這個地方必須是int類型,如果是string直接報錯
    //println(list.sum)
    //返回所有元素,除了第一個
    println(list.tail)
    //提取列表的前n個元素
    println(list.take(2))
    //提取列表的後n個元素
    println(list.takeRight(1))
    //列表轉換爲數組
    println(list.toArray)
    //返回緩衝區,包含了列表的所有元素
    println(list.toBuffer)
    //List 轉換爲 Map
    val arr = Array(("jason", 24), ("jim", 25))
    arr.toMap.foreach(println)
    //List 轉換爲 Seq
    println(list.toSeq)
    //List 轉換爲 Set
    println(list.toSet)
    //列表轉換爲字符串
    println(list.toString())
  }
}

運行結果:

List(A, a, b, a)
List(c, a, b, a)
List(d, e, a, b, a)
List(a, b, a, 1)
faba
fabaa,b,a
a
true
a
List(a, b)
List(b, a)
List(a, b)
List(b, a)
true
true
true
List(a, a)
false
a
b
a
a
1
List(a, b)
List(a, b)
false
a
b
a
a
1
3
ajason
bjason
ajason
b
a
aba
a,b,a
List(a, b, a)
List(a, a, b)
false
List(b, a)
List(a, b)
List(a)
[Ljava.lang.String;@51cdd8a
ArrayBuffer(a, b, a)
(jason,24)
(jim,25)
List(a, b, a)
Set(a, b)
List(a, b, a)
 

轉自https://blog.csdn.net/xianpanjia4616/article/details/84930779

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章