Scala的可变集合和不可变集合

object Test1 {
  def main(args: Array[String]): Unit = {
    //不可变的Array:长度不可变
    val arr1 =Array(1,2,3)
    arr1(0) = 100
    arr1.foreach(println)
    //数组的常用的方法(对于可变和不可变的数组都可以使用)
    //1.截取。 从源数组中,取一部分,组成一个新的数组
    //arr1.slice(起点下标,终点下标-不包括)
    val arr2 = arr1.slice(2,5)
    arr2.foreach(println)
    //2.遍历
    //3.映射 map
    //Array(1,2,3)--------->Array(2,4,6)
    val arr3 = Array(1,2,3).map(e=>e*2)
    arr3.foreach(println)
    //4.过滤 filter
    println("-"*50)
    //留下奇数,组成一个新的数组
    val arr4 =Array(2,3,4,5,6).filter(e => e%2==1)
    arr4.foreach(println)
    //5.折叠 reduce
    println(Array(1,2,3,4).reduce((a,b)=>a+b))
    println("-"*50)

    //多维数组
    val arr5 = Array(Array(1,2,3),
                     Array(4,5,6),
                     Array(7,8,9))
    //9
    println(arr5(2)(2))
    //4
    println(arr5(1)(0))
    //创建二维数组
    //val arr6 =Array.ofDim[Int](3,3,3)
     //arr6(0)(0)=1
    val arr6 =Array(1,2,3,4,5,6).grouped(3)
    //对数组中的元素,3个一组,升级为二维数组
    while (arr6.hasNext){
      val rs =arr6.next()
      println(rs(0))
    }

  }

}

实训题目

答案:1.C 2.B  3.A,B  4.B  5.B 

可修改的:ArrayBuffer
//  def main(args: Array[String]): Unit = {
    //1 新建
//    val arr1=ArrayBuffer(1,2,3)
//    //2 添加
//    arr1+=4
//    arr1.insert(0,100)
//    //3 删除
//    arr1-=3//删除指定的元素
//    arr1.remove(0)//删除指定位置(下标)的元素
//    //4 修改
//    arr1(0)=50//把下标为0的元素赋值为50
//
//    //注意,下标不能越界,有效的范围是:0- 长度-1
//    println(arr1.length)//length 长度,用来获取元素的个数
//    println(arr1(1))//IndexOutOfBoundsException
//    //5 查询
//    //5.1 判断某个元素在数组中是否存在
//    println(s"50在数组中吗 ${arr1.contains(50)}")
//    //5.2 找到指定元素的下标
//       //-1 表示这个元素在数组中不存在
//    println(s"500在数组中的下标是:${arr1.indexOf(500)}")
//    //6 遍历
//    //for,foreach,iterator
////    for (i<-arr1)println(i)
////    println("-"*50)
////    arr1.foreach(println)
////    println("-"*50)
//    val it1=arr1.iterator
//    while (it1.hasNext){
//      println(it1.next())
//    }


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值