/**
* Created by root
* Description : List
*/
object ListTest { def main(args: Array[String]): Unit = {
println()
} val a = List(1,2,3,4)
for (i <- a) println(i) // 将0添加到a中
val b = 0::a
for (i <- b) println(i) val c = List("x","y","z") // 两个list合并
val d = a ::: c
for (i <- d) println(i) println(a.head) // 返回第一个元素
println(a.tail) // 返回除第一个元素的List
println(a.isEmpty) // 判断List是否为空 // 取出List中的偶数;
// filrter高阶函数:他的参数就是一个匿名函数,匿名参数输入参数x就代表的是列表中的一个元素,
// filter会遍历列表中的每个元素,每个元素就去套用传进来的匿名函数的判断条件,如果判断为true就保留这个元素
val e = a.filter(x => x % 2 ==0)
println(e)
// filter简写
val e1 = a.filter(_ % 2 ==0)
println(e1) // 过滤字符串中的数字
val str = "123 hello scala 168"
val f = str.toList.filter(x => Character.isDigit(x))
println(f) // 取到某个字符之前的所有字符
val g = str.toList.takeWhile(x => x != 's')
println(g) // map高阶函数:将每个元素进行转换映射
val h = c.map(x => x.toUpperCase())
println(h)
// map简写
val h1 = c.map(_.toUpperCase)
println(h1) // 取出列表中的偶数,并且为每个元素加上100
val k = a.filter(_ % 2 ==0).map(_ + 100)
println(k) // 两层List
val q = List(a,List(4,5,6))
// 取出q中的所有偶数;第一步:map获取每个list,第二步:filter过滤每个list中的偶数元素
val r = q.map(x => x.filter(y => y % 2 == 0 ))
println(r)
// 简写
val r1 = q.map(_.filter(_ % 2 ==0))
println(r1) // flatMap高阶函数:是将List中的结果打平
val p = q.flatMap(_.filter(_ % 2 == 0))
println(p) // 总结map与flatMap区别
// map:返回的结果和原List结构一致,如果是两层,返回的就是两层;r: List[List[Int]] = List(List(2,4), List(4, 6))
// flatMap:返回的结果只有一层List结构; p: List[Int] = List(2, 4, 4, 6) // 规约操作:reduceLeft(op:(T,T) => T)
// 求List中元素的和
val m = a.reduceLeft((x,y) => x + y)
println(m)
// reduceLeft简写
val m1 = a.reduceLeft(_ + _)
println(m1) // 规约操作:foldLeft(z:U)(op:(U,T)) => U
// 求List中元素的和
val n = a.foldLeft(0)((x,y) => x+y)
println(n)
// 简写
val n1 = a.foldLeft(0)(_ + _)
println(n1) }

scala中list集合的操作与总结的更多相关文章

  1. Programming In Scala笔记-第十七章、Scala中的集合类型

    本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...

  2. JAVA中的集合容器操作类

    目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...

  3. 关于for与forEach遍历集合中对集合进行操作的问题

    遍历List集合,在循环中再对List集合进行操作,有时候会遇到ConcurrentModificationException(并发修改异常);其实只有在forEach循环集合再对集合操作会发生异常: ...

  4. Scala 运算符和集合转换操作示例

    Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...

  5. scala中Map集合的简单使用

    import scala.collection.mutable /** * Map集合的简单使用 */ object MapUse { def main(args: Array[String]): U ...

  6. Python中set集合常用操作

    功能 Python符号 Python方法 备注 交集 & intersection, intersection_update &:取两者交集>>> set3 = se ...

  7. scala中的集合框架

  8. scala中to和util操作

    // Range:to:默认步进为1 val to1 = 1 to 10 println(to1) // 定义一个不进为2的Range val to2 = 1 to 10 by 2 println(t ...

  9. 9、scala函数式编程-集合操作

    一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...

随机推荐

  1. ryu学习笔记(2) 之 ryu-manager运行报错

    http://blog.csdn.net/haimianxiaojie/article/details/48769653 ryu在使用的时候最常出现的报错是:address already in us ...

  2. 使用“mvn site-deploy”部署站点(WebDAV例子)

    这里有一个指南,向您展示如何使用“mvn site:deploy”来自动部署生成的文档站点到服务器,这里通过WebDAV机制说明. P.S 在这篇文章中,我们使用的是Apache服务器2.x的WebD ...

  3. Maven项目模板

    maven 使用 Archetype 概念为用户提供不同类型的项目模板,它是一个非常大的列表(614个数字). maven 使用下面的命令来帮助用户快速开始构建一个新的 Java 项目. mvn ar ...

  4. Office在线预览及PDF在线预览的实现方式

    原文链接:http://www.officeweb365.com/officetoview.html 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office ...

  5. Oracle触发器给表自身的字段重新赋值出现ORA-04091异常

    业务描述如下: 在插入一个表的时候,需要根据一个字段的值更新另一个字段的值.当然也可以通过程序就能很简单得实现,只是这个字段只是数据交换用,和系统主业务没关系,不想修改程序,所以才用触发器的方式实现. ...

  6. Linux 限制用户远程SSH登录

    通过/etc/hosts.allow和/etc/hosts.deny两个配置文件远程限制某个IP和某段IP地址允许或拒绝访问Linux服务器 SSH.FTP.telnet等服务,其中/etc/host ...

  7. ELK+Redis 解析Nginx日志

    一.ELK简介 Elk是指logstash,elasticsearch,kibana三件套,我们一般使用它们做日志分析. ELK工作原理图: 简单来讲ELK具体的工作流程就是客户端的logstash ...

  8. Kafka 之 入门

    摘要: 最近研究采集层,对Kafka做了一个研究.分为入门,中级,高级步步进阶.本篇主要介绍基本概念,适用场景. 一.入门 1.    简介 Kafka is a distributed, parti ...

  9. js中找string中重复项最多的字符个数

    // split():字符串中的方法,把字符串转成数组. // sort():数组中的排序方法,按照ACALL码进行排序. // join():数组中的方法,把数组转换为字符串 function de ...

  10. C# Image与Base64编码互转函数

    public Bitmap GetImageFromBase64(string base64string) { byte[] b = Convert.FromBase64String(base64st ...