scala编程入门2:数组

一、 scala中的数组

1. scala中的数组有两种,Array和ArrayBuffer,Array是定长数组,ArrayBuffer是变长数组。

2. Array的使用如下:

    //1. 定义数组最简洁的方式
    val arr1 = Array(1,2,3,4)
    val arr2 = Array("hello", "world")
    //2. 也可以这么定义
    val arr3 = new Array[Int](10)
    val arr4 = new Array[String](10)
    //3. 访问数组中元素,使用的是()访问
    arr3(0) = 20
    arr4(0) = "moto"
    println(arr1(0))
    println(arr2(0))
    println(arr3(0))
    println(arr4(0))

3. ArrayBuffer的使用如下

      //1. 定义一个ArrayBuffer,需要导入包
    val arr1 = new ArrayBuffer[Int]()
    val arr2 = new ArrayBuffer[String]()
    // 2. 向数组中添加元素,使用+=操作符,使用++=可以将另一个集合中的元素加入到数组中
    arr1 += 1
    arr1 += (2,3,4,5)
    arr1 ++= Array(6,7,8,9,10)
    //3. 向数组的中间位置添加元素,使用insert()
    arr1.insert(3,20)
    //4. 删除数组中指定位置的元素,使用remove()
    arr1.remove(4)
    //5. ArrayBuffer可以与Array进行相互转换
    val newArr = arr1.toArray
    println(arr1)

4. 数组的遍历,下面提供四种写法

 val arr1 = new ArrayBuffer[Int]()
    arr1 += 1
    arr1 += (2,3,4,5)
    arr1 ++= Array(6,7,8,9,10)
    // 1. 第一种写法,遍历结果1,2,3,4,5,6,7,8,9,10
    for(i <- 0 until arr1.length){
//      println(arr1(i))
    }
    //2. 可以跳跃遍历数组,遍历结果1,3,5,7,9
    for(i <- 0 until (arr1.length, 2)){
//      println(arr1(i))
    }
    //3. 可以反序遍历数组,注意()的写法,遍历结果10,9,8,7,6,5,4,3,2,1
    for(i <- (0 until arr1.length).reverse){
//      print(arr1(i) + " ")
    }
    //4. 使用增强for循环进行遍历,结果1,2,3,4,5,6,7,8,9,10
    for(ele <- arr1){
      println(ele)
    }

5. 对数组求最大值、平均值、最小值、排序、拼接等操作

    //5. 获取数组最大值
    println(arr1.max)
    //6. 对数组进行排序
    quickSort(arr1.toArray)
    //7. 将数组元素拼接起来
    println(arr1.mkString("<", ",", ">"))

6. 对数组进行转换操作

    //8. 根据已有的arr,转换生成新的array
    val arr2 = for(ele <- arr1) yield ele * ele
//    println(arr2)
    //9. 结合if守卫,转换生成新的array,注意if的位置
    val arr3 = for(ele <- arr1 if ele %2 ==0) yield ele * ele
//    println(arr1)
//    println(arr3)
    //10. 使用函数式编程
    val arr4 = arr1.filter(_%2 == 0).map(_ * 2)
    println(arr1)
    println(arr4)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值