Scala-Unit4-Scala数组/集合
一、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.“查看所有可变集合
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- scp ssh-key连接原理。
- 单元测试 – Angular 2 Jasmine – 测试元素是否可见
- 如果设置了特定标头,则测试AngularJs的$http.defaults.head
- Building a Recipe Search Site with Angular and Elastics
- 在Scala中同时处理
- 如何在崩溃时自动监视并重启docker容器?
- 小黑小波比.获取值传入到radio控件,显示选中状态
- bash – 即使状态代码为400,如何从curl请求输出到文件?
- twitter-bootstrap – 在twitter bootstrap中的五个相等的列
- .net 与EJB的集成--开源项目IIOP.net