Scala 数组和元组

1、定义数组

数组创建方式一:

var a1:Array[String] = new Array[String](3)
a1(0)="Jason"
a1(1)="Marie"
a1(2)="Jimmy"

注意:1、泛型使用方括号;2、数组元素访问使用圆括号。

数组创建方式二:

var a2=Array("Jason","Marie","Jimmy")

数组创建方式三:区间数组

var a3=Array.range(1,10)
// 输出: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
var a3=Array.range(1,10,2)
// 输出:Array[Int] = Array(1, 3, 5, 7, 9)

2、数组遍历

def main(args: Array[String]): Unit = {
val a=Array(8,6,5,7,1)
// 1、方式一 相当于java中的增强for循环
for (elem <- a){
   println(elem)
}

// 2、方式二 根据下标依次遍历即可
 for (i <- 0 until a.length) {
   println(a(i))
  }
}

3、元组定义

  • 元组与数组类似,但是数组中所有的元素必须是同一种类型,而元组则可以包含不同类型的元素。
  • 最多支持22个元素 (Tuple1~Tuple22)
  • 使用下划线“_"访问元素,“_1"表示第一个元素
//元组定义方式一
var tupleDemo =("hello",2,5,8,"world",'a')
println(tupleDemo)
println(tupleDemo._1)
println(tupleDemo._2) 
println(tupleDemo._3)
println(tupleDemo._4)
println(tupleDemo._5)
println(tupleDemo._6)

//迭代元组
tupleDemo.productIterator.foreach{x=> println("value:"+x)}

//元组声明方式二
var tp2 = new Tuple3("Mike", "123 ABC street", 58)

//元组声明方式三
def mike = "Mike" -> 5
println(mike)				//输出:(mike,5)
println(mike.getClass)		//输出:class scala.Tuple2

//拓展二维元组
def mike = "Mike" -> 5 -> 6
println(mike)				//输出:((mike,5),6)

//输出scala.Tuple2
mike.getClass

4、元组模式匹配

可以通过模式匹配来获取元组中的值并赋予对应的变量:

//定义元组
val tp1=("mike","andemen",18)
//将元组元素依次赋给三个变量
val(name, address, age) = tp1
println(name)
println(address)
println(age)

如果某些位置不需要赋值,则可以使用下划线代替:

val tp1=("mike","andemen",18)
val (name,_,_)=tp1
println(name)

你可能感兴趣的:(scala,scala)