3.1.5 spark体系之分布式计算-scala编程-scala中的集合(数组array、list、set、map、元组)
目录1.数组 Array1.1创建数组1.2concat 方法1.3 遍历和其他方法1.4定义可变数组:ArrayBuffer,第一个是后加,第二个是头加,第三个是追加多个2.list2.1 创建 list(不用 new List)2.2 list遍历2.3list 方法举例2.4 list方法总结3.set4.map4.1 map 创建,map 中实际上是一个个的 tuple 二元组形式4.2获
·
目录
1.4 定义可变数组:ArrayBuffer,第一个是后加,第二个是头加,第三个是追加多个
4.1 map 创建,map 中实际上是一个个的 tuple 二元组形式
1.数组 Array
1.1 创建数组



/**
* 创建二维数组和遍历
*/
val arr3 = new Array[Array[String]](3)
arr3(0)=Array("1","2","3")
arr3(1)=Array("4","5","6")
arr3(2)=Array("7","8","9")
for(i <- 0 until arr3.length){
for(j <- 0 until arr3(i).length){
print(arr3(i)(j)+" ")
}
println()
}
var count = 0
for(arr <- arr3 ;i <- arr){
if(count%3 == 0){
println()
}
print(i+" ")
count +=1
}
arr3.foreach { arr => {
arr.foreach { println }
}}
val arr4 = Array[Array[Int]](Array(1,2,3),Array(4,5,6))
arr4.foreach { arr => {
arr.foreach(i => {
println(i)
})
}}
println("-------")
for(arr <- arr4;i <- arr){
println(i)
}
创建两种方式:
/**
* 创建数组两种方式:
* 1.new Array[String](3)
* 2.直接Array
*/
//创建类型为Int 长度为3的数组
val arr1 = new Array[Int](3)
//创建String 类型的数组,直接赋值
val arr2 = Array[String]("s100","s200","s300")
//赋值
arr1(0) = 100
arr1(1) = 200
arr1(2) = 300
1.2 concat 方法

1.3 遍历和其他方法

/**
* 遍历两种方式
*/
for(i <- arr1){
println(i)
}
arr1.foreach(i => {
println(i)
})
for(s <- arr2){
println(s)
}
arr2.foreach {
x => println(x)
}

1.4 定义可变数组:ArrayBuffer,第一个是后加,第二个是头加,第三个是追加多个

2.list
2.1 创建 list(不用 new List)
val list = List(1,2,3,4) ,也可以混着往里面写数据,都是不可变类型,修改里面 数据一般会返回一个新的 List


Nil 长度为 0 的 list
2.2 list遍历

2.3 list 方法举例


//创建
val list = List(1,2,3,4,5)
//遍历
list.foreach { x => println(x)}
// list.foreach { println}
//filter
val list1 = list.filter { x => x>3 }
list1.foreach { println}
//count
val value = list1.count { x => x>3 }
println(value)
//map
val nameList = List(
"hello bjsxt",
"hello xasxt",
"hello shsxt"
)
val mapResult:List[Array[String]] = nameList.map{ x => x.split(" ") }
mapResult.foreach{println}
//flatmap
val flatMapResult : List[String] = nameList.flatMap{ x => x.split(" ") }
flatMapResult.foreach { println }
2.4 list方法总结
过滤:

可变 list ListBuffer

3.set
创建 set 注意:set 集合会自动去重
set 遍历 foreach,for
set 方法举例

set 方法总结
//创建
val set1 = Set(1,2,3,4,4)
val set2 = Set(1,2,5)
//遍历
//注意:set会自动去重
set1.foreach { println}
for(s <- set1){
println(s)
}
println("*******")
/**
* 方法举例
*/
//交集
val set3 = set1.intersect(set2)
set3.foreach{println}
val set4 = set1.&(set2)
set4.foreach{println}
println("*******")
//差集
set1.diff(set2).foreach { println }
set1.&~(set2).foreach { println }
//子集
set1.subsetOf(set2)
//最大值
println(set1.max)
//最小值
println(set1.min)
println("****")
//转成数组,list
set1.toArray.foreach{println}
println("****")
set1.toList.foreach{println}
//mkString
println(set1.mkString)
println(set1.mkString("\t"))
可变长 set ,Set

4.map
4.1 map 创建,map 中实际上是一个个的 tuple 二元组形式

可变 map multable

4.2 获取 map 的值

4.3 遍历 map
for,foreach
//map遍历
for(x <- map){
println("====key:"+x._1+",value:"+x._2)
}
map.foreach(f => {
println("key:"+ f._1+" ,value:"+f._2)
})
4.4 遍历 key

4.5 遍历 value

4.6 合并 map

4.7 map 中的方法举例
filter:过滤,留下符合条件的记录


/**
* map方法
*/
//count
val countResult = map.count(p => {
p._2.equals("shsxt")
})
println(countResult)
//filter
map.filter(_._2.equals("shsxt")).foreach(println)
//contains
println(map.contains(2))
//exist
println(map.exists(f =>{
f._2.equals("xasxt")
}))
5.元组



更多推荐



所有评论(0)