列表List是一种有限的不可变序列式,所以所有的操作都会产生新的List
1、增加修改
/** * 连续多个数进行右操作 Nil是空List 至于为什么要加Nil是因为如果不加::就是Int的方法 * 但是Int并没有::方法,所以会编译错误 * Nil或者List() 都可以表示空List */ val list = 1 :: 2 :: 3 :: 4 :: Nil val list1 = List("hello","scala","spark","hadoop") //增加 5 :: list //修改 //list(0) = -1 error: value update is not a member of List[Int] //resXX: List[Int] = List(-1, 2, 3, 4) list.updated(0,-1)
2、遍历
//遍历 list.foreach(println) list.foreach((i:Int)=>println("Value is "+ i)) //返回一每个元素都+1的新的列表 resXX: List[Int] = List(2, 3, 4, 5) val res = list.map(x => x+ 1) println(res.mkString(";")) //返回列表中元素反转后新的列表 resXX: List[Int] = List(4, 3, 2, 1) list.reverse //按照字母的先后顺序进行排序 resXX: List[String] = List(hadoop, hello, scala, spark) list1.sorted
3、List的其他常用方法
//此方法返回的列表中的第一个元素 resXX: String = hello println(list1.head + ">>返回列表中的第一个元素hello") //此方法返回的列表中的最后一个元素 resXX: String = hadoop println(list1.last + ">>返回列表中最后一个元素hadoop") //此方法返回的列表中除最后一个元素外的其他元素组成的列表 resXX: List[String] = List(hello, scala, spark) println(list1.init + ">>返回除最后一个元素外的所有元素组成的列表") //此方法返回一个由列表元素组成的Iterator对象 resXX: Iterator[List[String]] = non-empty iterator println(list1.inits + ">>把列表生成一个Iterator对象") //此方法返回的列表中除第一个元素外外的其他元素组成的列表 resXX: List[String] = List(scala, spark, hadoop) println(list1.tail + ">>返回列表中除第一个元素外的所有元素组成的列表") println(list1.isEmpty + ">>列表是否是空") //判断列表中元素大于2个元素个数 resXX: Int = 2 val num = list.count((s:Int) => s > 2) println("num="+num) //删除列表前面的2个元素 resXX: List[Int] = List(3, 4) list.drop(2) //删除列表后面的1个元素 resXX: List[Int] = List(1,2,3) list.dropRight(1) //按照条件删除元素并把未删除的组成新的列表 resXX: List[Int] = List(2, 3, 4) list.dropWhile(i => i < 2) //List中是否存在大于1的元素 后面的表达式只要是boolean即可 resXX: Boolean = true list.exists((s:Int) => s > 1) //List中是否存在3这个元素 resXX: Boolean = true list.contains(3) //获取元素中第3个元素 从0开始 resXX: Int = 4 list(3) //filter是把元素中大于2的元素取出来生成一个新的列表返回 resXX: List[Int] = List(3, 4) list.filter((s:Int) => s >2) //判断列表中所有元素是否都大于等于1 resXX: Boolean = true list.forall((s:Int) => s>=1) //获取列表前面3个元素组成新的列表 resXX: List[Int] = List(1, 2, 3) list.take(3) //返回列表元素使用,分割组成的字符串 resXX: String = 1,2,3,4 list.mkString(",")
4、2个集合的拼接
val list2 = List("Hive") //resXX: List[String] = List(hello, scala, spark, hadoop, Hive) list1 ::: list2 list1 ++ list2 //resXX: List[String] = List(Hive, hello, scala, spark, hadoop) list2 ::: list1 list2 ++ list1 //resXX: List[String] = List(java, hello, scala, spark, hadoop) "java" +: list1 //建议使用这种方式编写 list1.+:("java") //resXX: List[String] = List(hello, scala, spark, hadoop, java) list1 :+ "java" //建议使用这种方式编写 list1.:+("java")
相关推荐
### Scala学习笔记(全) #### 一、Scala概述与特点 Scala是一种多范式的编程语言,旨在集成面向对象编程和函数式编程的各种特性。它运行于Java平台(Java虚拟机JVM),并且能够完全兼容所有的Java程序。这使得Scala...
在"scala学习笔记整理"中,我们可以深入探讨以下关键知识点: 1. **基础语法**:Scala的基础语法与Java有相似之处,但也有很多独特的特点。例如,它支持变量的不可变性(immutability),使用`val`声明常量,`var`...
4. 集合库:Scala的集合库设计精良,包含各种高效的数据结构,如List、Set、Map等。这些集合不仅支持传统的OOP操作,还提供了丰富的函数式API,如map、filter、fold等,方便进行数据处理。 5. 特性与模式匹配:...
本教程“scala-learn:scala学习笔记”旨在帮助初学者深入理解Scala的基础知识,同时也为有经验的程序员提供了一个复习和提升的平台。 1. **基础语法与数据类型** Scala的基础语法简洁而强大,包括变量声明(val和...
以上内容覆盖了 Scala 编程语言的核心知识点,从基本语法到高级特性,为初学者提供了一个全面的学习指南。Scala 是一门功能强大且灵活的语言,适合于构建大型的、复杂的软件系统。希望这些知识点能够帮助读者更好地...
本课程旨在通过三个阶段的目标来逐步深入学习Scala语言,最终能够灵活运用Scala进行Spark程序的开发,并具备阅读Spark内核源码的能力。 - **初级目标**:掌握Scala基础语法及编程技巧,能够独立完成简单的Spark程序...
- Scala的集合库是其强大之处,提供了一组高性能的集合实现,如List, Set, Map和ArrayBuffer。 - 支持惰性求值的集合,如Stream和View,能有效提高性能。 - 集合操作如`flatMap`, `map`, `filter`等是函数式编程...
Scala是一种多范式的编程语言,它融合了面向对象和函数式编程的概念,旨在提供一种简洁、类型安全且高性能的...通过学习,你可以熟练掌握Scala语言,应用于大数据处理、分布式计算以及构建高并发、高可用的应用系统。
-Scala学习注意事项 主要档案 适用于实用程序的Scala脚本 -Scala spark基本演示 Scala基本-变量,数据结构 -Scala基本数据结构: array, list, tuple ,应用function, lambda带有它们的function, lambda基本。 和...
"Scala_day01_scala_" 的标题暗示了这是一份针对初学者的Scala学习资料,旨在帮助新接触者快速入门。下面,我们将深入探讨Scala的一些核心概念和特性。 首先,Scala的基础语法与Java类似,但它提供了更简洁的表达...
这本书的中文完整版包含高清扫描和书签功能,使得读者可以轻松查找和学习相关内容,而且文字可选择复制,方便笔记和后续查阅。 Scala在大数据领域扮演着重要角色,主要归功于它与Apache Spark的紧密集成。Spark是一...
Scala是一种强大的、面向对象的编程语言,它集成了函数式编程的特点,被广泛应用于大数据处理、分布式计算...通过学习,你可以掌握如何在Scala项目中有效地利用函数式编程的力量,编写出高效、可维护和类型安全的代码。
**Scala FP Coursera课程:深入理解函数式编程** Scala是一种多范式编程语言,...在提供的`scala_fp_coursera-master`压缩包中,可能包含了课程的笔记、代码示例和练习,这些都是深入学习Scala函数式编程的宝贵资源。
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于后端开发。本笔记涵盖了Scala的基础...通过学习,开发者将能够掌握Scala的核心特性和编程技巧,从而更好地利用Scala进行后端开发。
**标题与描述解析** ...综上所述,这个压缩包文件可能包含了学习者在Coursera上完成Scala函数式编程课程时积累的所有材料,包括代码示例、笔记、项目文件等,这些都是进一步学习和复习函数式编程概念的重要资源。
在"scala_learn-master"这个目录下,你可能会找到一系列的Scala教程文件,如`.scala`源代码文件、笔记文档、练习案例等,通过这些资源可以深入学习并实践上述知识点。此外,可能还会有对特定话题如并发、网络编程或...
5. **集合类**:Scala提供了丰富的集合类,如`List`、`Array`和`Tuple`等。例如: ```scala val list = List(1, 2, 3) val array = Array(1, 2, 3) val tuple = ("a", 1) tuple._1 ``` 6. **高阶函数**:...
"scala-notes"可能是一个关于Scala编程的学习笔记或者教程集合,而"scala-notes-master"可能代表这是该资料的主目录或者最新版本。 在Scala中,你将学习到以下关键概念: 1. **类型系统**:Scala有强大的静态类型...
2. **集合库**:Scala 的集合库非常强大,提供了丰富的数据结构(如List、Set、Map)和操作,这对于数据处理至关重要。理解如何高效地使用这些集合对于编写高效的代码至关重要。 3. **Apache Spark**:Scala 通常与...
Spark SQL学习笔记 Spark SQL是Apache Spark平台下的一个模块,提供了一个编程抽象叫做DataFrame,并且作为分布式SQL查询引擎的作用。Spark SQL是Spark平台下的一个重要组件,主要用于处理结构化数据。 Spark SQL...