Scala的Array
数组:物理空间上连续的(一个挨一个)
优势:根据下标,能快速找到元素
列表:物理空间上不连续(不是一个元素挨着一个元素)
优势:插入元素,删除比较快
object dd {
//不可变的数组(默认是)
def main(args: Array[String]): Unit = {
//1.创建数组
val arr1 = Array(1,2,3)
//2.查看数组的元素,根据下标:格式 数组名(下标)
//下标从0开始
//超过下标会报错
println(s"arr1的第二个元素值是:${arr1(2)}")
//3.遍历
//for ,foreach,itertor
//for(i <- arr1)println(i)
//arr1.foreach(println)
val it1 = arr1.iterator
while (it1.hasNext){
println(it1.next())
}
}
}
//可变的数组
def main(args: Array[String]): Unit = {
val arr1 = ArrayBuffer(1,2,2,3,4)
//1.删除一个元素
arr1 -= 4
//2.添加一个元素
arr1 += 5
//3.修改元素。 数组名(下标)= 数组
//3 -->100
arr1(2)=100
//4.检查某个元素在数组中存在
println(s"数组中是否包含5:${arr1.contains(5)}")
//4.1找指定元素的下标: 找元素2在数组中的下标是多少?
//如果找不到,返回-1
//如果有多个相同元素,返回第一个下标
println(arr1.indexOf(2))
// arr1.foreach(println)
//5.从一个数组中,截取连续的一段来组成一个新的数组
//ArrayBuffer(-1,-2,1,2,3,4,5) ----->(1,2,3)
//ArrayBuffer(-1,-2,1,2,3,4,5).slince(截取这段的起点下标,截取这段的终点下标)
// val arr2 = ArrayBuffer(-1,-2,1,2,3,4,5).slice(2,5)
// ArrayBuffer(-1,-2,1,2,3,4,5) ---->(1,2,3,4,5)
val arr2 = ArrayBuffer(-1,-2,1,2,3,4,5).slice(2,7)
arr2.foreach(println)
}