泛型
scala中用[]表示泛型,用 (index) 获取元素
列表中可以存放各种类型的元素,但是泛型为Any
val list:List[Any] = List[Any](1,2,3,4,5,true)
Nil
三个常用的方法
head:列表里的第一个元素
tail:除了第一个元素以外,其余元素的列表
tails:依次排除第一个元素的所有所有情况的迭代器
listList() || listNil
Nil完全等价于 List()
foreach
高阶函数
foreach的书写格式:
for(元素类型 元素名称 : 遍历数组(集合)(或者能进行迭代的)){
语句
}
list.foreach(println)
总结来自:foreach增强for循环
foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。
foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
tail
tails
<-
/*
关于列表的两个方法
*/
var list_num = List(1,2,3,4,5,6,7,8)
def headAndTail(): Unit ={
println(list_num.head)
println(list_num.tail)
//所有tail形成了一个迭代器
for(num<-list_num.tails){
println(num)
}
}
拆分
slice
/*
集合的拆分
*/
var list_num = List(1,2,3,4,5,6,7,8)
def func_split()={
//按照条件拆分,结果是一个二元组,第一个元素是符合条件的,第二个元素是不符合条件的
println(list_num.partition(_ % 2 == 0))
//(List(2, 4, 6, 8),List(1, 3, 5, 7))
//按数量拆分,前n个是一个元素,后面所有是第二个元素
println(list_num.splitAt(3))
//(List(1, 2, 3),List(4, 5, 6, 7, 8))
//截取中间的部分元素
println(list_num.slice(3, 6))
//List(4, 5, 6)
}
拉链
/**
* 拉链操作,两个集合做拉链
* 以最短的集合为主
*/
def func_zip() = {
val list_keys = List("name","age","gender")
val list_values = List("tom",100,"boy",200)
val list_zip = list_keys.zip(list_values)
println(list_zip)
//解拉链 以二元组的形式体现
println(list_zip.unzip)
val list_animal = List("monkey","lion","tiger","lion")
println(list_animal.zipWithIndex)
}
/*
List((name,tom), (age,100), (gender,boy))
(List(name, age, gender),List(tom, 100, boy))
List((monkey,0), (lion,1), (tiger,2), (lion,3))
*/
扁平化,右添加.:+,左添加::完全等于.::,take获取【较好理解,不记录了】