大数据学习:6Scala系列之List、set、元祖

大数据学习:6Scala系列之List、set、元祖

4.3. 元组(Tuple)
映射是K/V对偶的集合,对偶是元组的最简单形式,元组可以装着多个不同类型的值,是不同类型的值的聚集。
4.3.1. 创建访问元组
创建元组:使用小括号将多个元素括起来,元素之间用逗号分隔,元素的类型和个数任意,
访问组元:使用_1, _2, _3等访问组元。
第二种方式定义的元组也可以通过a,b,c去访问组元。
在这里插入图片描述

另一种定义方式:
val t = new Tuple3(1, 3.14, “Fred”)
元组的实际类型取决于它的元素的类型,比如 (99, “runoob”) 是 Tuple2[Int, String]。 (‘u’, ‘r’, “the”, 1, 4, “me”) 为 Tuple6[Char, Char, String, Int, Int, String]。
目前 Scala 支持的元组最大长度为 22。对于更大长度你可以使用集合,或者扩展元组。
元组元素迭代遍历
object Test {
def main(args: Array[String]) {
val t = (4,3,2,1)
t.productIterator.foreach{ i =>println("Value = " + i )}
}
}
4.3.2. 拉链操作
使用zip方法把元组的多个值绑在一起,以便后续处理
在这里插入图片描述
注意:如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的那个数组的元素个数
4.4. 列表(List)
不可变的序列 import scala.collection.immutable._
在Scala中列表要么为空(Nil表示空列表)要么是一个head元素加上一个tail列表。
9 :: List(5, 2) :: 操作符是将给定的头和尾创建一个新的列表
注意::: 操作符是右结合的,如9 :: 5 :: 2 :: Nil相当于 9 :: (5 :: (2 :: Nil))
不可变列表
object ImmutListDemo {

def main(args: Array[String]) {
  //创建一个不可变的集合
  val lst1 = List(1,2,3)
  //将0插入到lst1的前面生成一个新的List
  val lst2 = 0 :: lst1
  val lst3 = lst1.::(0)
  val lst4 = 0 +: lst1
  val lst5 = lst1.+:(0)

  //将一个元素添加到lst1的后面产生一个新的集合
  val lst6 = lst1 :+ 3

  val lst0 = List(4,5,6)
  //将2个list合并成一个新的List
  val lst7 = lst1 ++ lst0
  //将lst1插入到lst0前面生成一个新的集合
  val lst8 = lst1 ++: lst0

  //将lst0插入到lst1前面生成一个新的集合
  val lst9 = lst1.:::(lst0)

  println(lst9)
}

}
可变
import scala.collection.mutable.ListBuffer

object MutListDemo extends App{
//构建一个可变列表,初始有3个元素1,2,3
val lst0 = ListBufferInt
//创建一个空的可变列表
val lst1 = new ListBuffer[Int]
//向lst1中追加元素,注意:没有生成新的集合
lst1 += 4
lst1.append(5)

//将lst1中的元素最近到lst0中, 注意:没有生成新的集合
lst0 ++= lst1

//将lst0和lst1合并成一个新的ListBuffer 注意:生成了一个集合
val lst2= lst0 ++ lst1

//将元素追加到lst0的后面生成一个新的集合
val lst3 = lst0 :+ 5
}
4.5. set
不可变
import scala.collection.immutable.HashSet

object ImmutSetDemo extends App{
val set1 = new HashSetInt
//将元素和set1合并生成一个新的set,原有set不变
val set2 = set1 + 4
//set中元素不能重复
val set3 = set1 ++ Set(5, 6, 7)
val set0 = Set(1,3,4) ++ set3
//set中的元素是随机无序的
print(set0)
println(set0.getClass)
}
可变
import scala.collection.mutable

object MutSetDemo extends App{
//创建一个可变的HashSet
val set1 = new mutable.HashSetInt
//向HashSet中添加元素
set1 += 2
//add等价于+=
set1.add(4)
set1 ++= Set(1,3,5)
println(set1)
//删除一个元素
set1 -= 5
set1.remove(2)
println(set1)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值