Scala基础—Map和Tuple操作示例

package com.spark.scala.basics

import scala.collection.immutable.SortedMap
import scala.collection.immutable.HashMap
import scala.collection.mutable

/**
  * 1.默认情况下,Map构建的是不可变的集合,里面的内容是不可修改的,原有的Map的内容保持不变
  * 2.map的实例是调用工厂方法模式apply()来构造Map实例
  * 3.若想直接newMap实例,则需要使用HashMap等具体的Map子类
  * 4.查询一个Map中的值,一个是采用getOrElse的语法的,一方面是在key不存的情况下不报告异常,另一方面是提供默认值,提供默认值是很重要的!
  * 5.使用SortedMap可以得到排序的Map集合
  * 6.LinkedHashMap可以记住插入的数据顺序
  *
  * 7.Tuple中可以有很多不同类型的数据,例如("Hadoop", "Apache", 20),脚标从_1开始的!
  */
object HelloMapTuple {
 def main(args:Array[String]): Unit = {
   val bigDatas = Map("Spark"->10, "Hadoop"->10) //调用工厂方法模式apply()来构造Map实例,注意Map是接口
   val persons = Map(("Hello", 1), ("World", 2))

   val programingLanguage = scala.collection.mutable.Map("Scala" -> 14, "Java" -> 23)
   programingLanguage("Scala") = 15

   for ((name, age) <- programingLanguage) println(name + " " + age)
   println(programingLanguage.getOrElse("Python", "C++")) //获的值

   var persionInformation2 = new mutable.LinkedHashMap[String, Int] //new 对象LinkedHashMap

   var persionInformation = new HashMap[String, Int] //new 对象
   persionInformation += ("Scala" -> 14, "Java" -> 23) //增加元素
   persionInformation -= ("Scala") //去除元素
   for ((name, age) <- persionInformation) println(name + " " + age)

   for(key <- persionInformation.keySet) println(key)
   for(value <- persionInformation.values) println(value)

   val result = for ((name, age) <- persionInformation)  yield(age, name)
   for((age, name) <- result) println(age + " : " + name)

   //排序的Map
   val testSortedMap = SortedMap(("World", 1), ("Hello", 2))
   for((age, name) <- testSortedMap) println(age + " : " + name)

   // **************************Tuple******************************
   val information = ("Hadoop", "Apache", 20) //脚标从_1开始!
   println(information._3)
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值