• 这一篇里面有很多关于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 = List(1)
    a: List[Int] = List(1)
     
    scala> val = List(2)
    b: List[Int] = List(2)
     
    scala> val = a ++ b
    c: List[Int] = List(12)
     
    scala> val = List('a')
    d: List[Char] = List(a)
     
    scala> val = c ++ d
    e: List[AnyVal] = List(12, a)

    2.++: 与++不同的是使用的右边边的数据类型

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1)
    x: List[Int] = List(1)
     
    scala> val = LinkedList(2)
    y: scala.collection.mutable.LinkedList[Int] = LinkedList(2)
     
    scala> var = x ++: y
    z: scala.collection.mutable.LinkedList[Int] = LinkedList(12//y是LinkedList
    1
    2
    scala> var = y ++: x  //使用x的类型
    z: List[Int] =List(12)

    3.+:  在List的头部增加元素

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1)
    x: List[Int] = List(1)
     
    scala> val = 2 +: x
    y: List[Int] = List(21)
     
    scala> println(x)
    List(1)

    4./:应用二进制运算符起始值,从左到右遍历迭代所有元素。

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1,2,3,4)
    a: List[Int] = List(1234)
     
    scala> val = (5 /: a)(_+_)
    b: Int = 15
     
    scala> val = (5 /: a)((x,y) => x + y)
    c: Int = 15

    5.:+:在后面追加元素

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1)
    a: List[Int] = List(1)
     
    scala> val = :2
    b: List[Int] = List(12)
     
    scala> println(a)
    List(1)

    6.:: 为列表增加单个元素,这是一个右结合的操作符

    1
    1 :: List(23= List(23).::(1= List(123)

    7.::: 在列表的前面追加一个列表,这是一个右结合的操作符

    1
    List(12::: List(34= List(34).:::(List(12)) = List(1234)

    8.: 与元素合并后按照操作进行对列表遍历

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1,2,3,4)
    a: List[Int] = List(1234)
     
    scala> val = (a : 5)(_+_)
    b: Int = 15
     
    scala> val = (a : 5)((x,y) => x + y)
    c: Int = 15

    9.addString(b: StringBuilder) 对列表中的所有元素迭代将拼接成字符串

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1,2,3,4)
    a: List[Int] = List(1234)
     
    scala> val = new StringBuilder()
    b: StringBuilder =
     
    scala> val = a.addString(b)
    h: StringBuilder = 1234

    10.addString(b: StringBuilder, sep: String) 使用分隔符输出字符串

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1,2,3,4)
    a: List[Int] = List(1234)
     
    scala> val = new StringBuilder()
    b: StringBuilder =
     
    scala> a.addString(b, ", ")
    res0: StringBuilder = 1234

    11.addString(b: StringBuilder, start: String, sep: String, end: String) 定义输出以什么开始、分割、结束

    1
    2
    3
    4
    5
    6
    7
    8
    scala> val = List(1,2,3,4)
    a: List[Int] = List(1234)
     
    scala> val = new StringBuilder()
    b: StringBuilder =
     
    scala> a.addString(b , "List(" ", " ")")
    res5: StringBuilder = List(1234)

    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 }, { (p1, p2=> p1 + p2 })

    13.apply(n: Int) 通过索引选择元素

    1
    2
    scala> List('a','b','c').apply(1)
    res2: Char = b
  • 相关阅读:
    技术文章应该怎么写?
    后退时保存表单状态
    [原]长表头表格 竖直仅滚动内容区 水平滚动表头和内容区
    IE7不经提示关闭浏览器窗口
    meta 标记
    demo : 简单的 xslt 递归解析 xml 成 tree
    使用iframe和table模拟frameset的resize功能.html
    一个下划线(_)引发的"疑难杂症"
    几点小东西
    使用 ActiveReports 的 subReport 几点疑惑
  • 原文地址:https://www.cnblogs.com/charlesblc/p/8537059.html
Copyright © 2020-2023  润新知