List
Scala的list与Java集合框架中的list也非常相似。
定义
整型列表
val nums: List[Int] = List(1, 2, 3, 4)
二维列表
val dim: List[List[Int]] =
List(
List(1,0,0),
List(0,1,0),
List(0,0,1)
)
空列表
val empty = Nil
列表的三个基本操作
- head 返回列表第一个元素
- tail 返回一个列表,包含除了第一元素之外的其他元素
- isEmpty 在列表为空时返回true
栗子
val site:List[String] =List("google","baidu","sougou")
val nums = Nil
println( "第一网站是 : " + site.head )
println( "最后一个网站是 : " + site.tail )
println( "查看列表 site 是否为空 : " + site.isEmpty )
println( "查看 nums 是否为空 : " + nums.isEmpty )
以上代码输出结果
第一网站是 : google
最后一个网站是 : List(baidu, sougou)
查看列表 site 是否为空 : false
查看 nums 是否为空 : true
List常用方法
一、列表操作
List.concat() //连接两个或多个列表
List.reverse //将列表的顺序反转
def sorted[B >: A]: List[A] //列表排序
def distinct: List[A] //去除列表的重复元素,并返回新列表
def drop(n: Int): List[A] //丢弃前n个元素,并返回新列表
def dropWhile(p: (A) => Boolean): List[A] //从左向右丢弃元素,直到条件p不成立
def equals(that: Any): Boolean //判断是否相等
def exists(p: (A) => Boolean): Boolean //判断列表中是否存在某个元素
def isEmpty: Boolean //检测列表是否为空
def map[B](f: (A) => B): List[B] //通过给定的方法将所有元素重新计算
二、元素操作
List.fill() //创建一个指定重复数量的元素列表
def ::(x: A): List[A] //在列表开头添加元素,亦可以直接只用+=添加元素
def addString (b:StringBuilder,sep:String):StringBuilder //将列表的所有元素添加到 StringBuilder,并指定分隔符
def contains(elem: Any): Boolean //检测列表中是否包含指定的元素
def endsWith[B](that: Seq[B]): Boolean //检测列表是否以指定序列结尾所以还有startsWith();
def foreach(f: (A) => Unit): Unit //遍历列表的所有元素
def indexOf(elem: A, from: Int): Int //从指定位置 from 开始查找元素第一次出现的位置,所以有lastIndexOf
take(n:Int) 提取前n个元素,相反有takeRight,提取后n个元素
三、列表计算
def length: Int //返回列表长度
def max: A //查找最大元素
def min: A //查找最小元素
def sum: A //计算集合元素之和
四、转为其他
def mkString: String //列表所有元素作为字符串显示
def mkString(sep: String): String //使用分隔符将列表所有元素作为字符串显示
def toMap[T, U]: Map[T, U] //List 转换为 Map
def toSeq: Seq[A] //List 转换为 Seq
def toSet[B >: A]: Set[B] //List 转换为 Set
def toString(): String //列表转换为字符串