数组
package com.yy.scala
object ArrayApp extends App {
//定义定长一个数组
val a = new Array[String](10)
//数组长度
a.length
a(1) = "hello"
//定义一个初始化数组
val b = Array("hadoop", "hive", "spark")
val c = Array(1,2,3)
c.max
c.min
c.sum
//转换成String,第二个参数是分隔符
c.mkString(",")
//定义一个可变数组
var d = scala.collection.mutable.ArrayBuffer[Int]()
d += 1
d += 2
d += (3,4,5)
d ++= Array(6,7,8)
//指定位置赋值
d.insert(0,0)
//指定位置删除
d.remove(1)
//指定位置删n个
d.remove(0,3)
//从首部、尾部删除n个
d.trimStart(1)
d.trimEnd(2)
//转换成定长数组Array
d.toArray
//循环取值
for(i <- 0 until c.length){
println(c(i))
} for(c <- d){
println(c)
} //数组反着打印
for(i <- (0 until c.length).reverse){
println(c(i))
}
}
List和Set
package com.yy.scala
object ListApp extends App {
val list = List(1,2,3)
list.head//第一个元素 List(1)
list.tail//除了第一个元素的其他元素 List(2,3)
//Nil本身的数据类型就是List,在Nil前添加元素 List(1,2,3) val l = 1 :: 2 :: 3 :: Nil
//变长List
val l1 = scala.collection.mutable.ListBuffer[Int]()
l1 += 2
l1 += (3,4,5)
l1 ++= List(6,7,8)
l1 -= 2
l1 -= (1,4)
l1 --= List(6,7,8)
l1.toList
l1.toArray
l1.isEmpty
l1.head
l1.tail
val set = Set(1,2,3)
//变长Set
val s1 = scala.collection.mutable.Set[Int]()
}
Map
package com.yy.scala.course5
object MapApp extends App{
//定义一个Map
var map:Map[String,String] = Map()
map += ("1" -> "A")
map += ("2" -> "B")
//变长Map
val map1 = scala.collection.mutable.Map
//定义个有初始值的Map
var fruitColor = Map("apple"->"red", "banana"->"yellow", "grape"->"purple")
//获取指定key的值
val value = fruitColor.get("apple")
println("value: "+value)
//获取Map所有的key
for(key <- fruitColor.keys){
println("key: "+key)
}
//获取Map所有的value
for(value <- fruitColor.values){
println("value: "+value)
}
//判断是否为空Boolean类型
val isEmpty = fruitColor.isEmpty
println("Does the map empty: "+isEmpty)
val isContains = fruitColor.contains("apple")
println("Does the key exist: "+isContains)
//Map合并 Map合并时会移除重复的 key
var fruitColor2 = Map("orange"->"orange", "pear"->"yellow", "grape"->"purple")
var fruitColors = fruitColor ++ fruitColor2
fruitColors = fruitColor.++(fruitColor2)
println( "fruitColors: " + fruitColors )
//遍历Map中的key和value
fruitColor.keys.foreach{ key =>
println("key1: " + key + " value1: " + fruitColor(key))
}
for(key <- fruitColor.keys){
println("key2: "+ key + " value2: " + fruitColor(key))
}
for((k,v) <- fruitColor){
println("key3: " + k + " value3:"+ v)
}
for(map <- fruitColor){
println("key4: " + map._1 + " value4:"+ map._2)
}
}