2,实例化: val tuple_test = (100, "Scala", "Spark")
3,可以通过点号,下划线,-N(N从1开始)的索引访问元素
object TupleOps {
def main(args: Array[String]): Unit = {
val triple = (100, "Scala", "Spark")
println(triple._1)
println(triple._2)
println(triple._3)
}
}
元祖可以同时拥有Int 和 String. 这点与java不同,如果在java中,需要经常创建一个javaBean的类去装多个返回值,而在Scala中就可以简单地额返回一个元祖。这样做就简单了许多,实例化一个装有一些新对象的新元祖,只要把这写对象放在括号里,并用都好分隔即可。
def main(args: Array[String]) {
val array = Array(1,2,3,4,5)
for(i <- 0 until array.length){
println(array(i))
}
}
1
2
3
4
5
def main(args: Array[String]) {
val array = Array(1,2,3,4,5)
for(elem <- array) println(elem)
}
}
打印出数组 array里的元素
1
2
3
4
5
1、更改对偶:
(1)可变的Map,更改某个已有的值,或者是添加一个没有的对偶:
scores("scala") = 7
(2)添加多个对偶,使用“+=”操作符:
Score+=(“hadoop”->3,”spark”->5, ...)
(3)移除某个对偶,使用“-=”操作符:
Score-=“hadoop”
(4)不可变的Map来说,操作基本都会是返回一个新的Map:
// 获取一个添加了新对偶的Map
val newScores = scores + ("Bob" -> 10, "Fred" -> 7)
// 获取一个移除了对偶的Map
val newScores = scores - "Alice"
2、获取Map中的值
val bobsScore = scores("scala")
若Map中没有包含这个键值对,会抛出一个异常。用 contains()方法来检查是否包含指定的键。
val bobsScore=if(scores.contains(“scala”))scores(“scala”)else 0
或:val bobsScore = scores.getOrElse("Bob", 0)
3、迭代map
for ((k, v) <- map)
for (k <- map.keySet) // 单独拿出键
for (v <- map.values) // 单独拿出值
对于Map映射的索引,我们通常是用for循环,通过(key,value)<-map进行键值对的赋值。然后通过输出key和value来显示它。
object MapOps {def main(args: Array[String]) {
val ages = Map("Andy" -> 27, "Spark" -> 5)
for((k,v) <- ages){
println("Key is " + k + ",value is " + v)
}
println("Key is " + k)
}*/
}
}
Key is Spark,value is 5
def main(args: Array[String]) {
val file = Source.fromFile("E:\\Wangzisheng.txt")
for (line <- file.getLines){
println(line)
}
}
}
def main(args: Array[String]) {
val file = Source.fromURL( " https://www.baidu.com/")
for (line <- file.getLines){
println(line)
}
}
}
<head>
<script>
location.replace(location.href.replace("https://","http://"));
</script>
</head>
<body>
<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>
</body>
</html>