scala学习之旅(四):数组操作

文章地址:http://www.haha174.top/article/details/255656

1.Array

在scala 中Array 代表的含义和java 类似,也是长度不可改变的数组。此外由于scala都是运行在jvm中的双方可以相互调用,一次scala数组实际上还是java数组。
数组初始化之后长度就固定下来了,而且元素全部都根据其类型进行初始化

var a=new Array[Int](10)
var b=new Array[String](10)

可以直接使用Array()创建数组,元素的类型自动推断

var a=Array("hello","world")
a(0)="hi"

2.ArrayBuffer

在scala 中如果需要类似于java中的ArrayList这种长度可以变化的集合,可以使用Arraybuffer
大致如下:

//需要先导入
import scala.collection.mutable.ArrayBuffer
var b=ArrayBuffer[Int]()
//使用+=可以添加一个元素或者多个元素
 b+=1
 b+=(2,3,4,5)
 //使用++=可以添加其他集合中所有的元素
 b++=Array(6,7,8,9,10)
 //使用trimEnd 可以从尾部截断指定个数的元素
 b.trimEnd(5)
 //使用insert  可以在指定的位置
 b.insert(5,6)//在第五个位置上插入6
 b.insert(5,678910)//在第五个位置上插入6,7,8,9,10
 使用remove  可以移除指定位置的元素。
 b.remove(1)//移除下标为1的元素
  b.remove(1,3)//移除下标1到3的元素
  //array  和arrayBuffer  可以相互转化的
  b.toArray
  a.toBuffer

3.数组常见操作

3.1遍历Array 和Arraybuffer
使用for 循环和until 遍历Array/arrayBuffer

//使用until  的RichInt 提供的函数
for(i<-0 until b.length)
println(b(i))
//跳跃遍历
for(i<-0 until (b.length,2))
println(b(i))

//尾部遍历
for(i<-(0 until b.length).reverse)
println(b(i))

//增强for  循环
for(e<-b)
println(e)

3.2 数组元素求和

var a=Array(1,2,3,4,5)
var sum=a.sum

3.3 获取数组最大值

var  max=a.max

3.4 对数组进行排序

scala.util.Sorting.quickSort(a)

3.5获取数组中所有元素的内容

a.mkString()
a.mkString(",")
a.mkString("<",",",">")
//toString
a.toString
b.toString

4.数组转换

4.1 使用yoeld和函数式编程转换数组
对于Array 进行转换获取的还是Array

var  a=Array(1,2,3,4,5)
var a2=for(ele<- a) yield ele *ele

//对ArrayBuffer 进行转换

var b=ArrayBuffer[Int]()
b+=(1,2,3,4,5)
var b2=for(ele<-b) yield ele*ele

//结合if 守卫
var a3=for(ele<- if ele %2==0) yield ele*ele

//使用函数式编程转换数据(通常采用第一种方式)

a.filter(_% 2==0).map(2*_)
a.filter{_% 2==0}.map{2*_}

欢迎关注,更多福利

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值