-
定长数组:
- 声明方式一:
val arr = new Array[Int](10)
- 声明方式二:
var arr02 = Array(1, 3, "xxx")//apply方法创建数组对象
- 声明方式一:
-
变长数组:
- 代码实例:
val arr = new ArrayBuffer[Any](1,2,"Curry") //定义 println(arr(0)) println(arr.length) for(i <- arr) println(i) arr.append(4,5.0) //追加 arr.remove(0) //删除
- 小结:
①ArrayBuffer是变长数组,类似于Java中的ArrayList
②val arr = new ArrayBuffer[Int]()//使用apply方法创建的对象
③关于append:def append(elems: A*) { appendAll(elems) } //接收的是可变参数.
④arr每append一次,arr在底层会重新分配内存进行扩容,arr的内存地址会 变化,产生新的ArrayBuffer
-
定长数组与变长数组相互转换:
arr1.toBuffer //定长数组转变长数组
arr2.toArray //变长数组转定长数组
- 说明:arr1调用toBuffer方法并没有改变其本身的值,arr2同理;
-
多维数组的定义和使用:
- 定义:
val arr = Array.ofDim[Any](3)(4)
- 赋值:
arr(1)(1) = 1
- 遍历:
for(item <- arr){ for(i <- item) print(i+"\t") println() }
- 定义:
-
Scala数组和Java的List互转
代码示例:
//Scala变长数组 ==> List集合
val arr = ArrayBuffer("1", "2", "3")
import scala.collection.JavaConversions.bufferAsJavaList
val javaArr = new ProcessBuilder(arr)
val JavaList = javaArr.command()
println(javaList) //输出 [1, 2, 3]
import scala.collection.JavaConversions.asScalaBuffer
import scala.collection.mutable
// java.util.List ==> Buffer
val scalaArr: mutable.Buffer[String] = javaList
scalaArr.append("Curry")
println(scalaArr)
-
元组Tuple
- 基本介绍:元组可以理解为一个容器,可以存放多个相同或不同数据类型的元素;元组最多只能放入22个元素
- 创建元组:
val tuple = (1,3,"Curry") //tuple类型为Tuple_3
(元组从Tuple_1到Tuple1_22有22个类型) - 访问元组数据:
①println(tuple._1)
②println(t1.productElement(0)) //访问第一个元素
- 遍历:Tuple是一个整体,需要用迭代器遍历
val t = (1,2,3,"Curry","nb") for(i <- t.productIterator) println(i)
-
列表之List
- 基本介绍:Scala中的List不同于Java的List,Scala的List是一个object,可以直接存放数据,默认情况下,List是不可变的,属于Seq;
- 创建List:
val list1 = List(1,2,3) //val list2 = Nil(空List)
- 访问List:
val a = list1(0)
- List增加元素:向列表中追加元素,会返回新的List对象,原来List不变;
示例:
val list1 = List(1,2,3,"Curry") val list2 = list1:+4 //在List的末尾增加元素 println(list2) //输出List(1,2,3,"Curry",4) val lsit3 = 4+:list1 //在List最前面增加元素 println(list3) //输出List(4,1,2,3,"Curry") val list4 = 4::5::6::list1::Nil println(list4) //输出List(4, 5, 6, List(1, 2, 3, Curry)) val list5 = 4::5::6::list1:::Nil //等价于4::5::6::list1 println(list5) //输出List(4, 5, 6, 1, 2, 3, Curry)
//注意: 1 ::表示向集合中添加元素 2 :::表示将其左边的集合中每一个元素添加到其右边的集合中 3 而且:::左右边必须是集合 4 运算时,集合一定要放在最右边
-
列表之ListBuffer
- 代码示例:
object TestListBuffer {
def main(args:Array[String])={
val listBuffer = ListBuffer[Int](1,2,3)
println(listBuffer) //输出 ListBuffer(1, 2, 3)
val listBuffer2 = new ListBuffer[Int]
listBuffer2 += 4
listBuffer2.append(5)
println(listBuffer2) //输出 ListBuffer(4, 5)
listBuffer ++= listBuffer2
println(listBuffer) //输出 ListBuffer(1, 2, 3, 4, 5)
val a = listBuffer ++ listBuffer2
println(a) //输出 ListBuffer(1, 2, 3, 4, 5, 4, 5)
val b = listBuffer :+ 6
println(b) //输出 ListBuffer(1, 2, 3, 4, 5, 6)
listBuffer.remove(0)
println(listBuffer) //输出 ListBuffer(2, 3, 4, 5)
}
}