scala中list集合的操作与总结
/**
* 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集合的操作与总结的更多相关文章
- Programming In Scala笔记-第十七章、Scala中的集合类型
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- 关于for与forEach遍历集合中对集合进行操作的问题
遍历List集合,在循环中再对List集合进行操作,有时候会遇到ConcurrentModificationException(并发修改异常);其实只有在forEach循环集合再对集合操作会发生异常: ...
- Scala 运算符和集合转换操作示例
Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...
- scala中Map集合的简单使用
import scala.collection.mutable /** * Map集合的简单使用 */ object MapUse { def main(args: Array[String]): U ...
- Python中set集合常用操作
功能 Python符号 Python方法 备注 交集 & intersection, intersection_update &:取两者交集>>> set3 = se ...
- scala中的集合框架
- 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、scala函数式编程-集合操作
一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...
随机推荐
- Linux中添加快捷
执行操作比较快捷: 1.R3 CGP平台下OMU系统中: Linux 版本:2.6.16.60-0.21-bigsmp vi /etc/profile 2.R2 Linux版本2.6.5-7.244- ...
- 利用altium怎么生成PDF及怎么1:1打印文档
画完板子之后,还要生成原理图PDF文档,供其他设计人员参考和指正. 上图红框标注的两个地方,分别用于打印预览设置和生成原理图PDF.那么若是生成原理图PDF文档,则选择smart PDF即可. 点击s ...
- 安装OpenSSL缺失Microsoft Visual C++ 2008 Redistributables的解决方案
在安装OpenSSL的时候通常会提示以下错误: "The Win32 OpenSSL Installation Project setup has detected that the fol ...
- 苹果Mac OS系统修改Hosts文件的方法
使用苹果Mac OS X系统的用户有很多,近期也有不少童鞋问我Mac怎么修改hosts,修改hosts的方式有很多,下面我就整理两种比较方便的方法吧,希望能够帮到大家. 在某些时候可能遇到了需要修改系 ...
- android设置主mic/副mic录音
//添加MIC设置参数 /hal/audio_extn/audio_extn.c @@ -75,6 +75,7 @@ struct audio_extn_module { bool ras_enabl ...
- (转)ffmpeg 中 av_read_frame_internal分析
作者: chenwei1983 时间: 2012-3-5 04:21 PM标题: ffmpeg 中 av_read_frame_internal分析 ...
- vuejs 获取 Input 值
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- utf16编码格式
UTF-16是Unicode字符集的一种转换方式,即把Unicode的码位转换为16比特长的码元串行,以用于数据存储或传递.UTF-16编码规则如下: 2.2.1 从U+D800到U+DFFF的码位( ...
- 删除mac系统win10启动选择项
打开终端输入:diskutil list找到EFI这个分区,挂载EFI分区diskutil mount /dev/disk0s1 回到Finder 删除除apple之外的两个文件夹就可以了(删除win ...
- 管道符和作业控制 shell变量 环境变量配置文件
8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 管道符和作业控制 管道符:表示把一个文件的输出内容传送到后面的命令 grep 用来过滤指定关键词的命令 “|” 为 ...