Array:数组 可修改的:ArrayBuffer 不可修改的:Array
需要导入包
import scala.collection.mutable.ArrayBuffer
可修改的: ArrayBuffer
def main(args: Array[String]): Unit = {//1.新建val arr1=ArrayBuffer(1,2,3)//2.添加arr1 += 4arr1.insert(0,100)//3.删除arr1 -= 3 //删除指定的元素arr1.remove(0) //删除指定位置(下标)的元素//4.修改。通过下标来修改arr1(0) = 50 //把下标为0的元素赋值为50// 注意:下标不能越界。有效的范围是:0 - 长度 -1println(arr1.length) //length 长度 ,用来获取元素的个数println(arr1(10)) //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("--------------")
// arr1.foreach(println)
// println("--------------")val it1 = arr1.iteratorwhile (it1.hasNext)println(it1.next())}
不可修改的:Array: 长度
def main(args: Array[String]): Unit = {val arr1=Array(1,2,3,4,5,6)arr1(0)=100
// arr1.foreach(println)//数组的常用的方法(对于可变和不可变的数组都可以使用)//1. 截取。从原数组中,取一部分,组成一个新的数组
// arr1.slice(起点下标,终点下标-不包括)val arr2=arr1.slice(2,5)arr2.foreach(println)//2.遍历.foreach//3.映射 map//Array(1,2,3)------>Array(2,4,6)val arr3=Array(1,2,3).map(e=>e*2)arr3.foreach(println)//4.过滤 filterprintln("-"*50)//留下奇数,组成一个新的数组val arr4=Array(2,3,4,5,6).filter(e=>e%2==1)arr4.foreach(println)//5.折叠 reduceprintln(Array(1,2,3,4).reduce((a,b)=>a+b))
}
多维数组:
最典型的多维数组就是二维数组,类似于表格。有两种定义方法:
直接定义:Array.ofDim(x,y)
从一维数组转化得来:数组: grouped
//多维数组val arr5=Array(Array(1,2,3),Array(4,5,6),Array(7,8,9))//9println(arr5(2)(2))//4println( arr5(1)(0) )//创建二维数组
// val arr6=Array.ofDim[Int](3,3,3)
// arr6(0)(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))}