Scala元组和映射
1、map映射
import scala.collection.mutable._//如果要定义一个map为可变的需要导入mutable包
object helloworld {
def main(args: Array[String]) {
val map1 = scala.collection.immutable.Map[Int,String](100->"chenrong",200->"xiaofang");//定义map为不可变的
println(map1(100));
// map1(100)="yu";
println(map1(100));
val map = HashMap[Int,String](1->"cr");//由于导入mutable包这里默认为可变的
//这里的map的key和value的类型可以定义也可以不用定义
map(1)="dr";
println(map(1));
}
}
2、定义map
//定义map的方式
val map2 = Map[Int,Int]();
val map3 = new mutable.HashMap[Int,Int]();
3、对map的操作
import scala.collection.mutable
import scala.collection.mutable._//如果要定义一个map为可变的需要导入mutable包
object helloworld {
def main(args: Array[String]) {
val map1 = scala.collection.immutable.Map[Int,String](100->"chenrong",200->"xiaofang");//定义map为不可变的
println(map1(100));
// map1(100)="yu";
println(map1(100));
val map = HashMap[Int,String](1->"cr");//由于导入mutable包这里默认为可变的
//这里的map的key和value的类型可以定义也可以不用定义
map(1)="dr";
println(map(1));
//定义map的方式
val map2 = Map[Int,Int]();
val map3 = new mutable.HashMap[Int,Int]();
//给map添加成员
map +=(66->"hhhh",88->"yy");
map.+=(22->"hh",44->"kkk");
println(map);
//删除map成员,通过key来删除成员
map.-=(22);
println(map);
//通过连接可以将不可变的map改变成可变的map
val mutMap = map1 +(10->"uuu");
println(map1);
println(mutMap);//通过连接的方式将map1转变成为可变的新的map集合
//+ - 产生的是一个新的映射,原来的映射不会改变
//+= -= 是在原来的map基础上进行修改,不会产生新的集合
val subMap = map1 - 10;
println(subMap);
println(map1);
}
}
3、map映射的迭代
import scala.collection.mutable
import scala.collection.mutable._//如果要定义一个map为可变的需要导入mutable包
import scala.collection.Map
object helloworld {
def main(args: Array[String]) {
//map 的迭代
val map = Map[Int,String](1->"aa",2->"bb");
for((k,v)<-map) println(k+"===="+v);
println(map.keySet);//获取所有的key集合,为一个set集合
println(map.values);//获取所有的values集合
/*1====aa
2====bb
Set(1, 2)
MapLike.DefaultValuesIterable(aa, bb)*/
}
}
4、元组
object helloworld {
def main(args: Array[String]) {
//定义一个元组
val t = (1,"tom",2);
println(t);
//访问元组的元
//注意元组的元的下标从1开始而不是从0开始
println(t._1);
println(t._2);
//直接取出元组的分量
val (a,b,c) =t;
println(a+"==="+b+"==="+c);
}
}
欢迎关注我的公众号:小秋的博客
CSDN博客:https://blog.csdn.net/xiaoqiu_cr
github:https://github.com/crr121
联系邮箱:rongchen633@gmail.com
有什么问题可以给我留言噢~