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

时间:2019-06-12
本文章向大家介绍大数据学习之Scala数组和集合学习38,主要包括大数据学习之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

+ 字符串的拼接

++ 两个集合相加

++: 合并集合

.+: 头部追加元素

:+ 尾部追加元素

::: 两个集合相加

原文地址:https://www.cnblogs.com/hidamowang/p/11010457.html