目录
filter、toList、IsDigit、takeWhile
一、集合类图
二、List[T]
List[T]是最常用的集合类,T用来表示泛型,表示List集合里元素的类型。
由于Scala会自动进行类型推导,所以我们有时没有必要指定类型。
2.1创建List的方法
第一种创建List的方法
Scala自动进行类型推导为Int类型。
第二种创建List的方法
使用连接操作符进行创建List。
“::”为连接操作符。左边是元素,右边是List,这样会把元素添加到List的头部
当然换一种写法是不正确的。
第三种创建Lise的方法
“Nil”代表一个空的列表
创建过程:“z::Nil”(z去连接Nil这个空列表)----->"y" :: "z"(y再去连接“z与Nil连接的集合”)----->"x":: "y::z"(x再去连接“y::z”集合)。也就是创建过程是从右到左的。
如图所示的创建过程,res2就是d集合。
第三种创建List的方法
“:::”代表集合之间连接符。
且发现Scala把c集合的类型推导为Any,是因为在c集合中有来自a集合Int类型的元素也有来自d集合String类型的元素。Int是值类型,String是引用类型,它们公共的父类是Any类。
2.2 访问List的方法
head、tail、isEmpty
第一种:伪列表访问
head:获得的是列表中的第一个元素。
tail:获得列表中除了第一个元素的所有元素。
isEmpty:判断List是否为空,为空返回true,反之返回false。
eg:将List元素装换成String输出
三、List的高级使用
filter、toList、IsDigit、takeWhile
“filter”高级函数为过滤。把列表中不需要的东西过滤掉生成一个新符列表。
filter(保留条件):当元素符合保留条件时,元素被保留。否则被过滤掉。
这里a的filter()的过滤条件时一个匿名函数。当a中的元素传入匿名函数且返回true时,元素被保留。
toList:把String变成Char存入List中
Character.IsDigit():判断元素是否为数字,是数字返回true,反之返回false。
takeWhile():遍历List,当元素满足判断条件返回true时,保留元素。当元素不满足判断条件返回false时,停止遍历,break。
四、List-map
map里存在的是函数映射的一种关系。
_、flatMap的使用
将c里的小写字母转换成大写存在新列表map中。
map(映射关系):List转换成map时,map的key-value满足映射关系式。
“_”通配符与List中每个元素対应。
关于通配符的使用:
先将a这个List过滤出以后再通过map映射承认成一个新的List
多维List的map及其通配符的使用:
依次对map中多个List元素进行单个List的遍历,进行深度遍历。
flatMap(映射条件):一般用于多维List过滤形成一个一维List。过滤出多维List中满足映射条件的元素组成新List。