5. Scala集合 数组,List,Set,Map

数组

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)
  }

}
posted @ 2019-11-28 11:31  YanceyY  阅读(309)  评论(0)    收藏  举报