基本属性和常用操作
(1)获取集合长度
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(1)获取集合长度<br /> println(list.length)
(2)获取集合大小
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(2)获取集合大小,等同于length<br /> println(list.size)
(3)循环遍历
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(3)循环遍历<br /> list.foreach(println)
(4)迭代器
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(4)迭代器<br /> for (elem <- list.itera tor) {<br /> println(elem)<br /> }
(5)生成字符串
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(5)生成字符串<br /> println(list.mkString(","))
(6)是否包含
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(6)是否包含<br /> println(list.contains(3))
衍生集合
(1)获取集合的头
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(1)获取集合的头<br /> println(list1.head)
(2)获取集合的尾(不是头的就是尾)
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(2)获取集合的尾(不是头的就是尾)<br /> println(list1.tail)
(3)集合最后一个数据
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(3)集合最后一个数据<br /> println(list1.last)
(4)集合初始数据(不包含最后一个)
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(4)集合初始数据(不包含最后一个)<br /> println(list1.init)
(5)反转
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(5)反转<br /> println(list1.reverse)
(6)取前(后)n个元素
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(6)取前(后)n个元素<br /> println(list1.take(3))<br /> println(list1.takeRight(3))
(7)去掉前(后)n个元素
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> //(7)去掉前(后)n个元素<br /> println(list1.drop(3))<br /> println(list1.dropRight(3))
(8)并集
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> val list2: List[Int] = List(4, 5, 6, 7, 8, 9, 10)<br /> //(8)并集<br /> println(list1.union(list2))
(9)交集
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> val list2: List[Int] = List(4, 5, 6, 7, 8, 9, 10)<br /> //(9)交集<br /> println(list1.intersect(list2))
(10)差集
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> val list2: List[Int] = List(4, 5, 6, 7, 8, 9, 10)<br /> //(10)差集<br /> println(list1.diff(list2))
(11)拉链
val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)<br /> val list2: List[Int] = List(4, 5, 6, 7, 8, 9, 10)<br /> //(11)拉链 注:如果两个集合的元素个数不相等,那么会将同等数量的数据进行拉链,多余的数据省略不用<br /> println(list1.zip(list2))
(12)滑窗
案例1
从List里面取元素
val list1 = List(30, 50, 70, 60, 10, 20)
// 滑窗
val it: Iterator[List[Int]] = list1.sliding(3)//每次取3个值.
for (e <- it) {
println(e)
}
输出结果:
List(30, 50, 70)
List(50, 70, 60)
List(70, 60, 10)
List(60, 10, 20)
解读上面的输出结果,滑窗的意思是从第一个开始取值,先从0号索引开始输出三个值,输出结果为 “30,50,70” ,然后再从1号索引开始输出三个值,输出结果为”50,70,60” ,然后再从2号索引开始输出三个值,输出结果为 “70,60,10” ,然后从3号索引输出三个值为”60,10,20” ,滑动完了就不滑动了..
案例2
每次长度为3,每隔两个元素滑窗一次
val list1 = List(30, 50, 70, 60, 10, 20)<br /> // 滑窗<br /> val it: Iterator[List[Int]] = list1.sliding(3, 2)<br /> for (e <- it) {<br /> println(e)<br /> }
输出结果 :
List(30, 50, 70)
List(70, 60, 10)
List(10, 20)
解读: 从0号索引开始滑动窗口三个元素,所以输出”30,50,70” ,然后隔着两个索引再滑动,就从2号索引开始滑动三个元素,所以输出结果为”70,60,10”,最后从索引为4的位置开始滑动,滑动三个,但是最后只是剩下两个元素了,所以输出结果为”10,20”