文章目录
集合
Scala中集合分为可变集合和不可变集合
可变集合
可以对其中的元素进行修改、添加、移除
不可变集合
永远不会改变,但可以模拟添加、移除、或更新操作,虽然会返回一个新集合,但是元集合内容不会发生改变
数组
数组分为定长数组和变长数组
区别就在于定长数组初始化之后不能对数组长度进行修改,而变长数组可以修改数组长度
一、定长数组
直接定义数组中的数据,让其自动判断数组的类型,有整数和小数时,则为double类型
package scalaP
object arr {
def main(args: Array[String]): Unit = {
val arr=Array(1,3,4)
for (i <- arr){
println(i)
}
}
}
运行结果:
先定义数组的长度,再给数组添加值
package scalaP
object arr {
def main(args: Array[String]): Unit = {
//先定义数组的长度,再给数组添加值
val arr=new Array[Double](2)
arr(0)=3.8
arr(1)=6.8
for ( i <- arr){
println(i)
}
}
}
运行结果:
筛选最值,排序
- Scala对数组提供的方法示例:
.sum 加和
.min 最小值
.max 最大值
.sorted 升序排列
.sorted.reverse降序排列(原理:先将数组升序排列,在将排列后的数组倒序排列则为降序排列)
package scalaP
object arr {
def main(args: Array[String]): Unit = {
val arr = Array(10,0,60)
//.sum求数组中所有元素的和
val arrsum = arr.sum
//.min求数组中最小的元素
val arrmin= arr.min
//.max求数组中最大的元素
val arrmax= arr.max
//sorted升序排列
val arrSorted=arr.sorted
//reverse降序排列(先将数组升序排列,在将排列后的数组倒序排列则为降序排列)
val arrReverse=arr.sorted.reverse
println("数组中元素的和是:"+arrsum)
println("数组中最小的数是:"+arrmin)
println("数组中最大的数是:"+arrmax)
println("排升序结果:")
for (i <- arrSorted){
print(i+"\t")
}
println("")
println("排降序结果:")
for ( i<- arrReverse){
print(i+"\t")
}
}
}
运行结果:
二、变长数组
变长类型数组中元素的添加,删除,合并以及固定位置的插入和移除等操作
package scalaP
import scala.collection.mutable.ArrayBuffer
object cma {
def main(args: Array[String]): Unit = {
var arr = new ArrayBuffer[Int]()
arr+=1
arr+=2
arr+=3
println(arr)
}
}
运行结果:
object cma {
def main(args: Array[String]): Unit = {
var arr = new ArrayBuffer[Int]()
arr+=1
arr+=2
arr+=3
println(arr)
arr-=2
println(arr)
}
}
“-=”符号对变长数组中的元素进行删减,"arr-=3"代表删除值为3的元素,如果数组中有多个值为3的元素,那么从前往后删除第一个匹配的值
如下图所示:删除数组中是1的元素
val a=ArrayBuffer(2,4,6)
val b=ArrayBuffer(8,10)
println(a++=b)
package scalaP
import scala.collection.mutable.ArrayBuffer
object cma {
def main(args: Array[String]): Unit = {
val arr=ArrayBuffer[Int](1,5,6,7)
arr.insert(0,2)
println(arr)
arr-=2
println(arr)
}
}
运行结果:
package scalaP
import scala.collection.mutable.ArrayBuffer
object cma {
def main(args: Array[String]): Unit = {
val arr=ArrayBuffer[Int](1,5,6,7)
arr.insert(2,3)
println(arr)
arr.remove(1,2)
println(arr)
}
}
运行结果:
水平有限,若有错误请指正,改不改另说哦嘻嘻,逗你呢
- 列表有头部好和尾部的概念,可以使用head和tail的方法获取
- 列表返回的是列表第一个元素的值
- tail 返回的是除了第一个元素外的其他值构成的心列表,这体现出列表具有递归的链接表