• 大数据学习之Scala数组和集合学习38


    六:scala数组

    1 数组定义:

    数组定义1var arr = new Array[String](3)

    String:存储的元素类型

    3:存储3个元素

    添加元素: arr(1) = "dawn"

    数组定义2val arr1 = Array[Int](1,2,3,4,5,6)

    改变内容:arr1(1) = 20

    添加元素:arr1 += 18 长度不可以改变

    2长度可变的数组

    创建长度可变数组:

    val ab = scala.collection.mutable.ArrayBuffer(2,3,4)

    长度可变:

    ab += 440

     

    3 数组方法

    -map(映射)

    映射: 1 2 3 4 5

    映射关系:f(x) = x*2

    对应映射关系:2 4 6 8 10 

     

    -》flatten

    扁平化操作

    这里a1经过map之后res23就是  一个数组中有2个数组元素的数组

    然后再进行扁平操作。将这2个数组合并成一个。并将其打散!!

    -flatMap

    相当于先map操作再flatten

    -foreach

    遍历数组中的元素

    -GroupBy

    分组 

    通过上面的一些数组方法可以进行的Scala单词计数,

    将上一步groupBy的结果Map集合的每一个元素进行遍历处理,haha -> Array(haha), dawn -> Array(dawn, dawn), hello -> Array(hello, hello), best -> Array(best) 处理每一个元素,

    key值保持不变,value进行计数,输出结果为keyvalue.length

    -sortBy

    排序

    这里对上面结果进行排序。由于单词计数之后结果是Map集合,Map集合不能进行排序,需要先转化成List才可以排序,再使用sortBy

    默认是正序

    逆序加一个负号

    七:scala集合

    1 可变集合

    scala集合有两种类型:

    可变mutable

    不可变Immutable

    val b = List(2,4,6)

    不可变集合:内容不可变(数组内容可变改)

          长度不可变(默认)

    可变集合:

    注意:需要导包

    import scala.collection.mutable._

    val buff = ArrayBuffer(2,3,4)

    内容可变:buff(1) = 300

    长度可变:buff += 200

    2不可变集合

    可以出了默认的方法以外,还可以调用不可用集合。

    import scala.collection.immutable._

    3 集合的基本操作

    scala中列表为空表示(Nil表示空列表)

    head:取头元素

    tail:取尾元素(除了头全是尾)

    5::a  a列表的头加入一个元素11

    11::12::13::Nil 空列表前加入三个元素11,12,13

    + 字符串的拼接

    ++ 两个集合相加

    ++: 合并集合

    .+: 头部追加元素

    :+ 尾部追加元素

    ::: 两个集合相加

  • 相关阅读:
    “”开天眼“”,天地分割效果
    关于获得当前的index的方法
    echart(2),模拟数据导入篇
    腾讯windows系统服务器
    elsarticle模板 去掉Preprint submitted to
    elsarticle模板 去掉摘要前后的两条横线
    LeetCode 345. Reverse Vowels of a String
    path变量修改后无法保存
    LeetCode 13: Roman to Integer
    LeetCode 118. Pascal's Triangle
  • 原文地址:https://www.cnblogs.com/hidamowang/p/11010457.html
Copyright © 2020-2023  润新知