Scala集合

import scala.collection.mutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}

/**
 * @author aqi
 * @since 2023/6/30 15:53
 * @describe 数组
 */
object Arr {

  def main(args: Array[String]): Unit = {
    // 声明定长数组(数组长度不可变)
    val ints = new Array[Int](2)
    val strings = Array("java", "scala", "python")
    // 获取数组的某个元素
    ints(0) = 100;
    println(ints(0))


    // 声明可变数组
    val arrayBufferInts = ArrayBuffer[Int]()
    val arrayBufferStrings = ArrayBuffer("java", "scala", "python")
    // 添加元素
    arrayBufferStrings.append("hadoop")
    arrayBufferStrings += "flume"
    // 删除元素
    arrayBufferStrings.remove(1)
    arrayBufferStrings -= "hadoop"
    // 追加数组
    arrayBufferStrings ++= Array("hive", "sqoop")


    // 元组(元组可以用来包含一组不同类型的值。例如:姓名,年龄,性别,出生年月。元组的元素是不可变的)
    // 声明一个元组
    val tom = ("tom", 20, "男")

    // 获取元组中的数据
    val name = tom._1
    val age = tom._2
    val gender = tom._3

    // 使用->声明一个元组(只能包含2个元素,多出来的元素会被包在一块)
    // ((lucy,30),女)
    val lucy = "lucy" -> 30 -> "女";

    // (lucy,30)
    val value = lucy._1
    // 女
    val value1 = lucy._2



    // 列表(1、可以保存重复的值, 2、有先后顺序)
    // 声明一个不可变列表
    val strList = List("java", "scala")
    // 声明一个不可变空列表
    val emptyList = Nil
    // 使用::方法创建一个不可变列表
    val a = "1" :: "2" :: "3" :: Nil

    // 声明一个可变队列
    val intList = ListBuffer(1, 2, 3, 4)
    val intsList = ListBuffer[Int]()

    // 常用api
    // 获取元素
    intList(1)
    // 添加元素
    intList.append(5)
    intList += 10000
    // 追加一个列表
    intList ++= ListBuffer(7, 8)
    // 删除元素(这里是值,不是下标)
    intList -= 10000
    // 转为不可变列表
    intList.toList
    // 转换为数组
    intList.toArray
    // 判断列表是否为空
    intList.isEmpty
    // 接两个列表
    ListBuffer(1, 2) ++ ListBuffer(3, 4)
    // 获取列表的首个元素
    intList.head
    // 获取除第一个元素以外的元素
    intList.tail
    // 反转列表
    intList.reverse
    // 获取列表前缀(前3个元素)
    intList.take(3)
    // 获取列表后缀(除了前2个元素之外)
    intList.drop(2)


    // 拉链(使用zip将两个列表,组合成一个元素为元组的列表)
    val zipA = List("zhangsan", "lisi", "wangwu")
    val zipB = List(19, 20, 21)
    // List[(String, Int)] = List((zhangsan,19), (lisi,20), (wangwu,21))
    val zipResult = zipA.zip(zipB)

    // 拉开
    // (List[String], List[Int]) = (List(zhangsan, lisi, wangwu),List(19, 20, 21))
    zipResult.unzip

    // toString
    // List(1, 2, 3, 4)
    intList.toString()

    // 1,2,3,4
    intList.mkString(",")

    // 并集(获取这两个列表的并集)
    val unionA = List(1,2,3,4)
    val unionAB = List(3,4,5,6)
    // List[Int] = List(1, 2, 3, 4, 3, 4, 5, 6)
    val unionResult = unionA.union(unionAB)

    // 交集(获取这两个列表的交集)
    val intersectA = List(1,2,3,4)
    val intersectB = List(3,4,5,6)
    // List[Int] = List(3, 4)
    val intersectAResult = intersectA.intersect(intersectB)

    // 差集(获取这两个列表的差集,表示获取diffA在diffB中不存在的元素)
    val diffA = List(1,2,3,4)
    val diffB = List(3,4,5,6)
    // List[Int] = List(1, 2)
    diffA.diff(diffB)

    // set集合(1、元素不重复,2、不保证插入顺序)
    // 创建不可变集合
    val intSet = Set[Int]()
    val strSet = Set("java", "hive", "scala")

    // 创建可变集合
    val intsSet = Set(1,2,3,4)

    // Map映射()
    // 不可变Map
    val map = Map("zhangsan"->30, "lisi"->40)
    // 根据key获取value
    map("zhangsan")

    // 可变Map
    val changeMap = mutable.Map("zhangsan" -> 30, "lisi" -> 40)
    // 赋值
    changeMap("zhangsan") = 20
    // 获取所有key
    changeMap.keys
    // 获取所有vale
    map.values

  }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值