package
com.jn.scala.hello
/**
* @author jiangning
*/
object
Map_Tuple
{
def
main
(
args
: Array[
String
]){
// 1. immutable.Map的定义,map是不可变的
val
map
=
Map
(
"book"
->
10
,
"gun"
->
18
,
"ipad"
->
1000
)
// 对map进行遍历,v乘以0.9
for
((
k
,
v
) <-
map
)
yield
(
k
,
v
*
0.9
)
// 2.定义mutable的map
val
scorces
= scala.collection.mutable.
Map
(
"scala"
->
7
,
"hadoop"
->
8
,
"Spark"
->
10
)
// 3.map中获取值如果获取不到就获取一个默认值
val
hadoopScore
=
scorces
.
getOrElse
(
"hadoop"
,
0
)
// 4.map集合中添加一个元素
scorces
+=
(
"R"
->
9
)
// 5.map集合进行排序
val
sortMap
= scala.collection.immutable.
SortedMap
(
"scala"
->
7
,
"hadoop"
->
8
,
"Spark"
->
10
)
// 6.Tuple将类型不同的元素放在一个集合中
val
tuple
= (
1
,
2
,
3.14
,
"Rocky"
,
"Spark"
)
// 7.Tuple下标是从1开始,下面获取的值为3.14
val
thrid
=
tuple
.
_3
// 8.Tuple可以返回多个值
val
(
first
,
second
,
third
,
fourth
,
fifth
) =
tuple
// 9.Tuple返回多个值,可以有几个值不返回,但是要有占位符,用下划线
val
(
f
,
s
,_,_,_) =
tuple
// 10.可以进行分区,如果是大写会放入一个集合
"Marky Spark"
.
partition
(_.
isUpper
)
// 11.zip将两个对应位置的值合并为一个元素,拉链操作
// 理解为数组symbols中的每一个元素,对应count的对应元素位置,映射为一个map的key和value
val
symbols
=
Array
(
"["
,
","
,
"]"
)
val
count
=
Array
(
2
,
3
,
5
)
val
pairs
=
symbols
.
zip
(
count
)
for
((
x
,
y
) <-
pairs
)
Console
.
print
(
x
*
y
)
}
}