数组:物理空间上连续的(一个挨着一个)
优势:根据下标,能快速找到元素
列表:物理空间上不连续(不是一个元素挨着一个元素的!)
优势:插入元素,删除比较快
不可变数组:
Scala
object Test_Array_1 {
//不可变数组(默认就是)
def main(args: Array[String]): Unit = {
//1.创建数组
val arr1 = Array(1,2,3)
//2.查看数组的元素。根据下标:格式 数组名(下标)
//下标从0开始
//如果超过了最大的下标,会报错:ArrayIndexOutOfBoundsException
println(s"arr1的第2个元素值是:${arr1(1)}")
//println(arr1(20))
//3.遍历
//for,foreach,iterator
//for(i <- arr1)println(i)
//arr1.foreach(println)
val it1 = arr1.iterator
while (it1.hasNext){
println(it1.next())
}
}
}
可变数组:
Scala
import scala.collection.mutable.ArrayBuffer
object Test_Array_1 {
// //不可变数组(默认就是)
// def main(args: Array[String]): Unit = {
// //1.创建数组
// val arr1 = Array(1,2,3)
// //2.查看数组的元素。根据下标:格式 数组名(下标)
// //下标从0开始
// //如果超过了最大的下标,会报错:ArrayIndexOutOfBoundsException
// println(s"arr1的第2个元素值是:${arr1(1)}")
// //println(arr1(20))
// //3.遍历
// //for,foreach,iterator
// //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,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).slice(截取这段的起点下标,截取这段的终点下标(不包括))
// 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)
}
}