Array and List 的区别
Array:有序,数组:元素在空间上连续。通过下标去访问元素会特别快!
List:有序,链表:元素在空间上不连续
两种类型:可变,不可变
常用的方法:添加,删除,查找,循环,排序,......
不可变不能直接添加元素,会报错
def main(args: Array[String]): Unit = {
val arr1 =scala.collection.mutable.ArrayBuffer(1,2,3)
arr1 +=4
println(arr1)
val arr2 = Array(1,2,3)
arr2 += 4
println(arr2)
}
def main(args: Array[String]): Unit = {
val arr1 = Array(1,2,3)
println( arr1(0) )
println( arr1(2) )
println( arr1(20) )
}
添加,删除,修改,判断是否存在,求和
def main(args: Array[String]): Unit = {
val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3)
arr1 += 4
arr1 += (5,6,7)
arr1 -= 4
arr1.remove(0,3)
arr1(2) = 700
println(arr1.contains(6))
println(arr1.contains(8))
println(arr1.sum)
arr1.foreach(ele=> println(ele))
}
排序,切片,过滤,搜索位置
def main(args: Array[String]): Unit = {
val arr1 = scala.collection.mutable.ArrayBuffer(-1,20,3)
val arr2 = arr1.sortWith((a,b)=>a>b)
val arr3 = arr1.slice(0,3)
val arr4 = arr1.filter(a => a>0)
val target = -2
val result = arr1.indexOf(-1)
println(s"-1的下标是 ${result}")
arr4.foreach(ele=> println(ele))
}
case class DreamItem(content:String,isDone:Boolean,deadLine:String,prior:Int)
def main(args: Array[String]): Unit = {
val Dream1 = DreamItem("能够当一位大厨",false,"2027,3,3",1)
val Dream2 = DreamItem("瘦到170斤",false,"2027-2-10",2)
val Dream3 = DreamItem("把专业学好",false,"2027-6-3",3)
val arr1 = scala.collection.mutable.ArrayBuffer(Dream1,Dream2,Dream3)
arr1(1) = arr1(1).copy(isDone = true)
arr1(1) = arr1(1).copy(prior = 0)
val orderList = arr1.sortBy(_.prior)
val newList = orderList.slice(0,2)
arr1.foreach(ele=> {
println("-----------------------------")
println(s"内容:${ele.content}")
println(s"状态:${if(ele.isDone)"完成" else "未完成"}")
println(s"截止日期:${ele.deadLine}")
println(s"优先级${ele.prior}")
println("-----------------------------")
println()
})
}