Scala集合

Scala集合

一、数组

1、不可变数组

创建数组的方式

//定义一个T类型的数组,长度为10,如果希望存放任意类型,则T换成Any
var array=new Array[T](10)
//另外一种创建方式
var array=Array(12,48,65,78,59);

2、可变数组
创建数组:

    var arr=new ArrayBuffer[Int](10)
    var arr1=ArrayBuffer(1,2,3,4,5,6)

追加元素:

//在原有数组基础上创建一个新数组,并在原数组末尾增加了一个新元素,新元素值为10
 	arr1.append(10)
 	//在原数组开头追加元素,可以追加多个
    arr1.prepend(555,999,888)
    //插入到第三个元素后方
    arr1.insert(3,999);
    //直接在第一个元素后面追加一个数组
    arr1.insertAll(1,arr1)
    //删除下标为1的元素
    arr1.remove(1)
    //删除下标为0-10的元素
    arr1.remove(0,10)

可变数组转换成不可变数组:

arr.toArray

不可变数组转换成可变数组:

arr.toBuffer

3、创建多维数组

    //创建多维数组,最多五维数组,几个参数就是几维
    Array.ofDim[Int](2,1,5,5,5)

二、List
.
1、不可变List

创建一个List集合

//由于List是抽象类,所以不能使用构造器生成对象,只能使用伴生对象生成一个List集合
var list=List(12,45,48)

访问List集合

print(list(1))

遍历List集合

list.foreach(println)

在原List集合后面新增元素,返回新的集合

    var list1 = list :+ 23;

在原List集合前面新增元素,返回新的集合

    var list2 = 15 +: list;

合并两个集合

    var list3 = list1 ::: list2
    //或者
    var list3 = list1 ++ list2

2、可变列表ListBuffer

创建可变列表:

    //构造器创建
    var list= new ListBuffer[Int]
    //利用伴生对象创建
    var list2= ListBuffer(41,4,5,78,36)

添加元素

    //添加多个元素
    list.append(1,2,3,4,5,6)
    //在头部添加三个元素
    list.prepend(81,2,45)
    //下标为0处插入元素8
    list.insert(0,8)
    //在下标0处插入一个集合的元素
    list.insertAll(0,list)

删除元素

    //从下标1开始删除两个元素
    list2.remove(1,2)
    //删除下标1的元素
    list2.remove(1)
    //删除值为36的元素
    list2-=36

三、Set集合

1可变Set

添加元素

//添加一个值为14的元素
var set1=set + 14 

合并两个Set

var set3 = set2 ++ set1

删除元素

//删除值为526的元素
var set2 = set1-526

2、可变Set集合

创建

    //创建可变Set集合
    var set=mutable.Set(1,2,5)

添加

    //增加一个元素
    set.add(101)

删除

    //删除元素
    set.remove(15)

四、Map

1、不可变Map

创建

 var map:Map[Int,String] = Map(1->"一号value",2->"2号value")

访问输出

	//普通访问
	print(map(3))
	//或
  	print(map.get(1).get)
    //访问key为5的元素,如果没有返回0
    print(map.getOrElse(5, 0))

2、可变Map

创建

var map=mutable.Map(1->"一号value",2->"2号value",3->"3号value")

添加元素

map.put(4,"4号元素")

删除元素

map.remove(key)

五、元组(可以存储最多22个元素,不限类型)

创建元组

    var tuple=("hello",1,'a',true)

访问输出

//注意_2访问的是第二个元素,不是第三个,因为没有_0
    print(tuple._2)

遍历输出

    for (elem <-tuple.productIterator){
      println(elem)
    }

嵌套元组

    var tuple2=("元组2","2",("嵌套元组",1,'a',false))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值