scala第八天

package com.learn.scala

/**
  * scala第八天
  * Created by zhuqing on 2017/2/27.
  */
object Day8MapAndTuple {
  def main(args: Array[String]): Unit = {

    val map = Map("Robbie" -> 100, "Lizzy" -> 89, "Tom" -> 90);

    for ((k, v) <- map) {
      println("k=" + k, "v=" + v)
    }
    //scala中对Map的key,value值的遍历与Java类似
    for (k <- map.keySet) {
      println("k=" + k + "=>" + map.get(k).get)
    }

    for (v <- map.values) {
      println("v=" + v)
    }


    /**
      * 元组:不同类型值的聚集就是元组,Map的键值对就是最简单的元组,如上面的(String,Int).
      * 这个是Java中没有的概念,如果真要用Java实现元组的功能,可以用Object类型的集合。
      */

    val tuple = ("Robbie", "Math", 83)
    //tuple取值时可以按照顺序号取
    println(tuple._1 + ":" + tuple._2 + ":" + tuple._3)

    //也可以使用模式匹配的方式获取
    val (name, classname, score) = tuple;
    println(name + ":" + classname + ":" + score)
    //如果不是每个属性都需要可以使用下划线_为不使用的属性命名
    val (enName, _, enScore) = tuple
    println(enName + "=>" + enScore)
    //元组可以用在函数返回多种返回值时,这种情况Java不好处理
    val (secondName, age) = this.getNameAndAge();
    println("scondName=" + secondName + ", age=" + age)

    /**
      * 拉链操作,将两个数组合并成一个对偶数组
      */
    val names = Array("Robbie", "Tom", "Lizzy")
    val ages = Array(22, 23, 21)
    val newTupes = names.zip(ages)
    for ((name, age) <- newTupes) {
      println(name + "=>" + age)
    }

  }

  /**
    * 生成姓名和年龄的元组
    *
    * @return
    */
  def getNameAndAge(): (String, Int) = {
    ("Tom", 23)
  }
}

 

转载于:https://my.oschina.net/u/587323/blog/847385

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值