快学scala笔记第三章 数组

18 篇文章 0 订阅

1 定义定长数组

var x=new Array[Int](8)

    x(6)=6

    println(x(6))

    for(i<-x)print(i+" ")

2 变长数组

定义变长数组

import scala.collection.mutable.ArrayBuffer

var x=ArrayBuffer[Int]()

向尾部追加元素

    x+=5

向尾部追加多个元素

    x+=(1,2)

使用++=可以追加任何集合

    x++=Array(4,6)

删除后两个元素

    x.trimEnd(2)

变长数组的插入与删除

插入insert(插入索引,元素集合)

x.insert(2,8,7,9)

删除元素remove(删除指定位置的索引[,指定删除的长度])

x.remove(2,3)

变长数组与定长数组的相互转化

    var x=Array[Char](3)

将定长数组转化成变长数组

    var x2=x.toBuffer

    x2+=('a','b','c')

将变长数组转换成定长数组    

    var x3=x2.toArray

3 数组遍历

.reverse将数组反向输出

for(i<-(0 until x.length).reverse)

      println(x(i))


until (x.length,2)指定输出数组步长为2

var x=Array(1,3,5,7)

    

    for(i<-0 until (x.length,2))

      println(x(i))

增强型的for

var x=Array(1,3,5,7)

    for(i<-x)println(i)


4 数组转化

通过yield推导出另一个数组

var x=Array(1,3,5,7)

var y=for(i<-x)yield i*2

过滤方法filter

val x=Array(1,2,3,4,5,6)
    var y=x.filter(_ %2==0)

    for(i<-y)println(i)

5 算法

val ra=scala.util.Random
    var data=new Array[Int](5)

    for(i<-0 until data.length)data(i)=ra.nextInt(30)

数组的sum统计加法

    var s=data.sum

    printf("sum:%d\n",s)

得到数组的最大值

    var s2=data.max

    printf("max:%d\n",s2)

数组的快速排序

scala.util.Sorting.Sorting.quickSort(数组)

变长数组排序方法

val ra=Random
    var da=ArrayBuffer[Int]()
    for(i<-0 until 5)da+=ra.nextInt(20)
    val y=da.sorted
    for(i<-y.reverse)println(i)

mkString连接数组

 val ra=Random
   var da=new Array[Int](5)
    for(i<-0 until da.length)da(i)=ra.nextInt(20)
    val str=da.mkString(",")

    val str2=da.mkString("[",",","]")

6 二维数组

var da=Array.ofDim[Double](2,3)
    da(0)(0)=5.5
    for(i<-0 until da.length){
      for(j<-0 until da(i).length)
        printf("da[%d][%d]=%.1f\t",i,j,da(i)(j))
        printf("\n")
    }

 var x=new Array[Array[Int]](3)

为一维数组赋值不同长度

    x(0)=new Array[Int](2)
    x(1)=new Array[Int](6)
    for(j<-x(1))println(j)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值