scala集合(数组,序列,集合,元组,映射)

本文深入探讨Scala中的集合类型,包括不可变长数组Array、可变长ArrayBuffer、不可变长序列List、可变长序列ListBuffer、Set集合、Tuple元组以及Map映射。特别强调了各类型的特点,如ArrayBuffer的长度可变性,List的头部和尾部添加元素,Set的无序性和不重复性,以及Map的键值对存储方式。
摘要由CSDN通过智能技术生成

1 Array数组

数组分为不可变长数组(Array) 和可变长数组(ArrayBuffer) 。 如字面意思,前者长度不可变, 已经写死了, 后者长度可变。:只是长度不可变, 但是对应角标元素可变 。

/**
 * 在Scala中,数组分为不可变长数组(在immutable包下)和可变长数组 (在mutable下)
 * 不可变长数组:长度不可变,角标元素值可变
 * 可变长数组:长度可变,角标元素值可变
 */

不可变长数组(Array

Scala中, Array代表的含义与Java中类似, 也是长度不可改变的数组。 此外,由于ScalaJava都是运行在JVM中, 双方可以互相调用, 因此Scala数组的底层实际上是Java数组。 例如字符串数组在底层就是JavaString[], 整数数组在底层就是JavaInt[] 。

/**
     * 不可变长数组
     */
    //[Int]相当于java中的泛型<Int>,起到元素类型保护的作用
    val arr1 = Array[Int](1, 2, 3, 4)
    //如果一个数组中,有多个不同值类型的元素,那么这个数组的类型是这些元素类型的公共父类型Any
    val arr2: Array[Any] = Array("true", false, 100, 'a')
    //定义了一个数组,长度为5,初始值与泛型的初始值一致,也就是0
    val arr3 = new Array[Int](5)
    //    println(arr3.toBuffer)//ArrayBuffer(0, 0, 0, 0, 0)
    //定义了一个数组,长度为1,值为5
    val arr4 = Array(5)
    //    println(arr4.toBuffer)//ArrayBuffer(5)

    arr1(0) = 100
    //    println(arr1.toBuffer)

    //++ 运算符:将两个数组合并成一个新的数组,原数组不改变
    val arr5 = arr1 ++ arr2
    //    println(arr5.toBuffer)

可变长数组(ArrayBuffer

Scala中, 如果需要类似于Java中的ArrayList这种长度可变的集合类, 则可以使用ArrayBuffer

如果不想每次都使用全限定名, 则可以预先导入ArrayBuffer<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值