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学习笔记(8): 列表的map,flatMap,zip和reduce

    map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: s ...

  2. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  3. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  4. python学习笔记整理——列表

    Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...

  5. python3.4学习笔记(十一) 列表、数组实例

    python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...

  6. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  7. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  8. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  9. Scala学习笔记(二)表达式和函数

    笔记的整理主要针对Scala对比Java的新特性:   1.if表达式 if表达式是有结果返回的. val a= if (5>2) "你好" else 1 a的值为if表达式 ...

随机推荐

  1. scrapy运行机制

    Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流, 触发事务(框架核心) 调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回 ...

  2. [BZOJ4881][Lydsy1705月赛]线段游戏

    首先冷静一下看清问题的本质,是将整个数列分成两个递增子序列. 那么由Dilworth定理得,无解当且仅当数列的最长下降子序列的长度>2,先特判掉. 然后就有一些比较厉害的做法:http://ww ...

  3. BZOJ.3611.[HEOI2014]大工程(虚树 树形DP)

    题目链接 要求的和.最大值.最小值好像都可以通过O(n)的树形DP做,总询问点数<=2n. 于是建虚树就可以了.具体DP见DP()函数,维护三个值sum[],mx[],mn[]. sum[]要开 ...

  4. [POI2012]Salaries

    题目大意: 给定一棵n带权树,每个点的权值在[1,n]范围内且互不相等,并满足子结点的权值一定小于父结点. 现在已知一个包含根结点的联通块中个点的权值,求剩下哪些点的权值能够被求出,并求出这些权值. ...

  5. hdu 3068 Manacher算法

    题意:求最长回文串,模板题 #include<cstdio> #include<iostream> #include<algorithm> #include< ...

  6. 20172319 2018.04.11 《Java程序设计教程》第7周课堂测验(补写博客)

    20172319 2018.04.11 <Java程序设计教程>第7周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  7. PIVOT函数与UNPIVOT函数的运用

    PIVOT用于将行转为列,完整语法如下: TABLE_SOURCE PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ...

  8. Python学习笔记(四):字符串的学习

    总结的内容: 1.字符串常用的方法 2.Python字符串格式化 3.Python字符串转义字 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符 ...

  9. 你了解for循环吗

    大家学什么语言都会学for循环 可是你真的会用吗 通常写法都是 var arr=arr[1,2,3,4]; for(var i=0;i<arr.length;i++){ console.log( ...

  10. Linux服务器压测/拷机软件收集

    最近公司采购了一批服务器,于是收集了一些拷机软件来压测服务器硬件性能.硬件的稳定相对来说比较重要,7x24小时无间断运行,主要看三个硬件:CPU.内存.硬盘. 下面是收集的一些教程,可能网址已经失效了 ...