1、介绍

    Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。。

    列表的元素类型 T 可以写成 List[T]。例如,以下列出了多种类型的列表:

    

    构造列表的两个基本单位是 Nil 和 ::

    Nil 也可以表示为一个空列表。

    以上实例我们可以写成如下所示:

    

  

  2、列表基本操作

    Scala列表有三个基本操作:

    1、head 返回列表第一个元素

    2、tail 返回一个列表,包含除了第一元素之外的其他元素

    3、isEmpty 在列表为空时返回true

    对于Scala列表的任何操作都可以使用这三个基本操作来表达。实例如下:

  连接列表

    

    

    

    ++: 与++不同的是使用的右边边的数据类型

    

  List.fill()

    我们可以使用 List.fill() 方法来创建一个指定重复数量的元素列表:

    

  

  List.tabulate()

    List.tabulate() 方法是通过给定的函数来创建列表。

    方法的第一个参数为元素的数量,可以是二维的,第二个参数为指定的函数,我们通过指定的函数计算结果并返回值插入到列表中,起始值为 0,实例如下

    

    

  List.reverse

    List.reverse 用于将列表的顺序反转,实例如下:

    

   

  Scala List 常用方法

    1、为列表预添加元素

      +:  在List的头部增加元素

      :+  在后面追加元素

    

    

   2、def addString(b: StringBuilder): StringBuilder

    将列表的所有元素添加到 StringBuilder

    

   3、def addString(b: StringBuilder, sep: String): StringBuilder

    将列表的所有元素添加到 StringBuilder,并指定分隔符

    

   4、通过列表索引获取元素

      def apply(n: Int): A

    

   5、检测列表中是否包含指定的元素

      def contains(elem: Any): Boolean

    

   6、将列表的元素复制到数组中

    def copyToArray(xs: Array[A], start: Int, len: Int): Unit

    

   7、去除列表的重复元素,并返回新列表

     def distinct: List[A]

    

   8、丢弃前n个元素,并返回新列表

    def drop(n: Int): List[A]

    

   9、丢弃最后n个元素,并返回新列表

    def dropRight(n: Int): List[A]

    

   10、从左向右丢弃元素,直到条件p不成立

    def dropWhile(p: (A) => Boolean): List[A]

    

   11、检测列表是否以指定序列结尾

    def endsWith[B](that: Seq[B]): Boolean

    

   12、判断是否相等

    def equals(that: Any): Boolean

    

   13、判断列表中指定条件的元素是否存在

    判断l是否存在某个元素:

    

   14、输出符号指定条件的所有元素。

    过滤出长度为3的元素:

    

   15、检测所有元素

    例如:判断所有元素是否以"a"开头:

    

   16、将函数应用到列表的所有元素

    def foreach(f: (A) => Unit): Unit

    

   17、获取列表的第一个元素,获取列表的最后一个原始

    def head: A

    def last: A

    

    

   18、从指定位置 from 开始查找元素第一次出现的位置

    def indexOf(elem: A, from: Int): Int

    

   19、返回所有元素,除了最后一个,返回所有元素,除了第一个

    def init: List[A]

    def tail: List[A]

    

   20、计算多个集合的交集

    def intersect(that: Seq[A]): List[A]

    

   21、检测列表是否为空

    def isEmpty: Boolean

    

   22、创建一个新的迭代器来迭代元素

    def iterator: Iterator[A]

    

   23、在指定的位置 end 开始查找元素最后出现的位置

    def lastIndexOf(elem: A, end: Int): Int

    

   24、返回列表长度

    def length: Int

    

   25、通过给定的方法将所有元素重新计算

    def map[B](f: (A) => B): List[B]

    

   26、查找最大元素,查找最小元素

    def max: A,def min: A

    

   27、列表所有元素作为字符串显示

    def mkString: String

    

   28、使用分隔符将列表所有元素作为字符串显示

    def mkString(sep: String): String

    

   29、列表反转

    def reverse: List[A]

    

   30、列表排序

    def sorted[B >: A]: List[A]

    

   31、检测列表在指定位置是否包含指定序列

    def startsWith[B](that: Seq[B], offset: Int): Boolean

    

   32、计算集合元素之和

    def sum: A

    

   33、提取列表的前n个元素

    def take(n: Int): List[A]

    

   34、提取列表的后n个元素

    def takeRight(n: Int): List[A]

    

   35、列表转换为数组

    def toArray: Array[A]

    

   36、返回缓冲区,包含了列表的所有元素

    def toBuffer[B >: A]: Buffer[B]

    

   37、List 转换为 Map

    def toMap[T, U]: Map[T, U]

    

   38、List 转换为 Seq

    def toSeq: Seq[A]

    

   39、List 转换为 Set

    def toSet[B >: A]: Set[B]

    

   41、列表转换为字符串

    def toString(): String

    

  参考:http://www.runoob.com/scala/scala-lists.html

scala 学习笔记一 列表List相关推荐

  1. Scala学习笔记(三)

    Scala学习笔记(三) 一.模式匹配 1. 简单模式匹配 2. 匹配类型 3. 守卫 4. 匹配样例类 5. 匹配数组 6. 匹配列表 7. 匹配元组 8. 变量声明中的模式匹配 8.1 获取数组中 ...

  2. Scala学习笔记(一)

    Scala学习笔记(一) 一.Scala简介 二.Scala安装与配置 1. 安装JDK 2. 安装Scala SDK 3. 安装IDEA插件 三.Scala解释器 1. 启动Scala解释器 2. ...

  3. python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解

    前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...

  4. Scala 学习笔记

    Scala 学习笔记 1 object func_exp { 2 println("Welcome to the Scala worksheet") //> Welcome ...

  5. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)

    Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...

  6. Scala学习笔记04:内建控制结构

    Scala学习笔记04:内建控制结构 scala提供的控制结构并不算多,因为在函数式编程中,可以自己开发出各种功能的控制结构,所以scala提供的原生控制结构仅仅够用为止. 1.if - 判断 if是 ...

  7. Scala学习笔记03:操作符

    Scala学习笔记03:操作符 一.scala中操作符与方法的等价性 scala中操作符即方法.方法即操作符.scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的 ...

  8. Scala学习笔记02:数据类型、常量与变量

    Scala学习笔记02:数据类型.常量与变量 一.数据类型 1.基本数据类型 Byte 字节型 Short 短整型 Int 整型 Long 长整型 Char 字符型 String 字符串 Float ...

  9. 学习笔记之列表的使用

    学习笔记之列表的使用 一.列表的通用操作 1.1.加号 1.2.乘号 1.3.in 和not in 1.4.len() 1.5.max()和min() 1.6.list.index() 1.7.lis ...

最新文章

  1. PBio-2018:如何设计可预测植物表型的微生物组
  2. 在Python中创建单例
  3. weka: naive bayes
  4. 记录MongoDB启动报错MongoDB not running on the provided host and port
  5. JDBC连接池C3P0,druid
  6. java中的堆、栈、方法区等比较
  7. android用IO实现日记的读写,android开发实现文件读写
  8. Nexus 安装与配置
  9. 网页为什么只加载了基本html,关于HTML的那些事
  10. 微软2011年10月最有价值专家(MVP)名单 51CTO十三位用户当选
  11. [转载] 七龙珠第一部——第012话 向神龙许愿
  12. 用C/C++实现SMC动态代码加密技术 .
  13. C++多线程的6种创建方法
  14. 对达内想说的八句话!(也适合各种参加培训的人)
  15. 同比、环比的区别及计算公式
  16. W(hadoop).Permission denied: user=dr.who, access=WRITE, inode=“/output“:root:supergroup:drwxr-xr-x
  17. 阿里云香港云服务器ECS适合什么场景?
  18. 希尔顿欢朋中国第200家酒店在杭州开业;玲娜贝儿在上海迪士尼全球首发亮相 | 全球旅报...
  19. 老夫决定把这九年的编程经验传授给你。
  20. 网络协议之:基于UDP的高速数据传输协议UDT

热门文章

  1. asp.net web开发步骤_Web 系统安全性测试之会话管理测试
  2. java多重继承用在什么地方_Java提高篇——Java实现多重继承
  3. python jsonpath效率低_Python学习:jsonpath的性能问题
  4. open with code 报错没有项目_Python开发:解决Ubuntu安装tesserocr报错
  5. 软件手游app介绍推广页html
  6. 服务器打包运营级H5商城源码
  7. Typecho Theme Aria书写自己的篇章
  8. android 后台耗时,android教程之使用asynctask在后台运行耗时任务
  9. 酷乐emlog下载插件
  10. WordPress 不用插件实现对长文章进行分页