目录
一、Tuple
Tuple名元组;
生成Tuple
“()”生成Tuple。
当()里只有两个元素是,成为Double Tuple。
“->”是()的简写。
Tuple会自动识别元素类型。
访问Tuple
访问Tuple的元素:Tuple名._ + 元素位置信息
如上所示。
Tuple有什么用?
当函数返回值有多个值时,可以用一个Tuple来封装起来。
如何封装函数的多个返回值?
下面是求一个列表元素的长度、元素的和、元素的平方和。返回的结果封装在一个Tuple中。
二、Map[K,V]
在Map的泛型中会有两个类型,一个是Key,一个是Value。
定义Map
Map(key1 -> Value1, Key2 -> Value2, Key3 -> Value3 ....)
Scala中Map元素的Key和Value的类型也会被自动识别。
访问Map中的元素
Map名(Key):访问Map中与Key映射的Value。
Map名.contains(Key) :用来判断这个Key是否在Map中。
Map名.keys:返回一个仅有Map中Key的Set。
Map名.values :生成一个仅有Map的Value的Set。
Map名 + (Keyn -> Valuen, Keyn+1 -> Valuen+1):为Map添加新元素,生成一个新的Map。
Map名 ++ List(Keyn -> Valuen, Keyn+1 -> Valuen+1):为Map添加新元素,生成一个新的Map。
Map名 - key:删除Map中的元素。并新建一个Map。
Map名 -- List(Key1,Key2...):删除Map中的元素。并新建一个Map。
三、快速排序
object kuaip_hetong {
def qSort(a: List[Int]): List[Int] = {
if (a.length < 2) a
else {
qSort(a.filter(_ < a.head)) ++ a.filter(_ == a.head) ++ qSort(a.filter(_ > a.head))
}
} //> qSort: (a: List[Int])List[Int]
qSort(List(2, 3, 1)) //> res0: List[Int] = List(1, 2, 3)
qSort(List(1, 2, 56, 3, 67, 34)) //> res1: List[Int] = List(1, 2, 3, 34, 56, 67)
}