加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala-Unit4-Scala数组/集合

发布时间:2020-12-16 08:50:58 所属栏目:安全 来源:网络整理
导读:一、Scala数组 1.数组的定义: 方法一:val arr = new Array[String](3) String代表数据的元素类型、3表示数组的长度 方法二:val arr = Array[Int](1,3,5,7) 修改数组某元素:arr(1) = 18 注意:数组的长度不可改变,arr += 9(错误,数组不可添加元素),在定

一、Scala数组

  1.数组的定义:

  方法一:val arr = new Array[String](3)

    String代表数据的元素类型、3表示数组的长度

  方法二:val arr = Array[Int](1,3,5,7)

    修改数组某元素:arr(1) = 18

  注意:数组的长度不可改变,arr += 9(错误,数组不可添加元素),在定义数组时数据类型可以省略

?

  2.数组的方法

    1)map(映射)  

object MapTest {
  def main(args: Array[String]): Unit = {
    val arr = Array[Int](1,7)

    val arr1 = arr.map(x => x*5)

    println(arr1.toBuffer)
  }
}

    注意:在Scala语言中,使用toBuffer来将堆地址转换为其对应数据信息。

    

    2)flatten(扁平化)

    命令行操作:val arr = Array("hello hunter henchou","hello reba henmei")

          arr.map(_.split(" "))       //res1: Array[Array[String]] = Array(Array(hello,hunter,henchou),Array(hello,reba,henmei))

          arr.map(_.split(" ")).flatten    //res2: Array[String] = Array(hello,henchou,hello,henmei)

?

    3)flatMap(先做map映射,再做flatten扁平化)

     命令行操作:arr.flatMap(_.split(" "))    //res3: Array[String] = Array(hello,henmei)

?

    4)foreach(遍历数组)

     命令行操作:val arr = Array(2,4,6,8)

           arr.foreach(x => print(x))    //2468

?

    5)groupBy(分组)

     命令行操作:val arr = Array("hello hunter henchou","hello reba henmei")

          需求1:将arr分解成一个包含arr所有单词的数组,然后根据单词进行分类

           arr.flatMap(_.split(" ")).groupBy(x => x)    

          //结果:res9: scala.collection.immutable.Map[String,Array[String]] = Map(reba -> Array(reba),henmei -> Array(henmei),hunter -> Array(hunter),henchou -> Array(henchou),hello -> Array(hello,hello))

          需求2:将arr进行单词计数wordcount

           arr.flatMap(_.split(" ")).groupBy(x => x).map(x => (x._1,x._2.length))

          //结果:res12: scala.collection.immutable.Map[String,Int] = Map(reba -> 1,henmei -> 1,hunter -> 1,henchou -> 1,hello -> 2)

    6)sortBy(排序)

     命令行操作:val arr = Array("hello hunter henchou","hello reba henmei")

      需求:将arr进行单词计数并按照降序排序:

        arr.flatMap(_.split(" ")).groupBy(x => x).map(x => (x._1,x._2.length)).toList.sortBy(x => x._2)

        //结果:res16: List[(String,Int)] = List((reba,1),(henmei,(hunter,(henchou,(hello,2))

      注意:arr数组进行完groupBy后时Map集合,而Map集合不支持sortBy方法,必须将其用toLis或toArrayt转为List集合或Array数组再进行排序。

?

二、集合

  1.集合的分类:1)可变集合(mutable)

         2)不可变集合(Immutable)

  2.集合的定义:

    1)定义不可变集合:val s = List(1,5)

      不可变集合元素不可修改,长度也不能改变(即不能添加元素)

?    

    可以通过命令"scala.collection.immutable."查看所有不可变集合

?

    2)定义可变集合:定义可变集合前必须导入可变集合的包

      import scala.collection.mutable._

      val s = ArrayBuffer(2,6)

      可变集合可以修改集合元素,也可以添加元素

    

    可以通过命令”scala.collection.mutable.“查看所有可变集合

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读