Scala 基础知识点巩固2

1、集合中常用的函数

sum / max / min

# 定义一个List[Int]
val list1 = List(1,3,4,6,8,9)
# 取集合中所有元素的和
list1.sum
# 取集合中所有元素的最大值
list1.max
# 取集合中所有元素的最小值
list1.min
2、集合中的其它函数
  • 条件过滤函数 filter(过滤条件表达式)

# 如取出list1中的偶数
list1.filter(e => e%2 == 0)
  • 对嵌套集合压平操作 flatten

# 嵌套集合
val list2 = List(1,2,3)
val list3 = List(4,5,6)
val list4 = List(list2,list3)
# flatten操作
list4.flatten   //压平操作是将嵌套在集合内层中的集合的元素放到外层生成新的集合
  • map 对集合中的元素做映射

# 对list1中所有元素乘以10的操作就用map函数
list1.map( e => e*10 )
  • flatMap() 相当于是对集合中的元素行进行映射处理,然后再做压平处理

# 例如将集合中的小写字母转换成相对应的大写字母,并保留小写字母
val ls1 = List('a','b','c')
# flatMap操作
val ls2 = ls1.flatMap(ch => List(ch,ch.toUpper)) // toUpper 将小字符转换成大写字符
  • 对集合中所有元素作条件判断 forall(条件判断)

# 判断list1中的所有元素是否都大于0,条件成立返回true,否则返回false
list1.forall(e => e > 0)
  • 对集合中所有元素进行操作 foreach(操作)

# 将list1集合中的每一个元素换行打印出来
list1.foreach(println)
  • reduceLeft / reduceRight

# 从集合左边开始操作 
list1.reduceLeft(_+_)
# 从集合右边开始操作
list1.reduceRight(_+_)
  • foldLeft / foldRight 带初始值的操作

# foldLeft 
list1.foldLeft(10)(_+_)
# foldRight
list1.foldRight(100)(_-_)

Scala 知识点掌握2的更多相关文章

  1. Scala 知识点掌握1

    Scala知识点巩固 1.Scala简介 Scala是一门面向对象和面向函数的编程语言,是一门静态编程语言,如 Java Scala(变量类型在编译阶段确定):源码文件需要基于 JVM 运行的. 动态 ...

  2. scala知识点(二)

    Scala允许使用三个引号来进行多行字符引用:(引自) val longString = """Line 1 Line Line """; ...

  3. Scala知识点汇总

    Scala数组小结 1.定长数组 定长数组:指长度不可变的数组Array.第一种方式:先声明一个数组,后初始化该数组: scala> val array = new Array[Double]( ...

  4. scala知识点(一)

    1.drop,dropRight,dropWhile drop: drop(n: Int): List[A] 丢弃前n个元素,返回剩下的元素 dropRight: dropRight(n: Int): ...

  5. Scala——面向对象和函数式编程语言

    Scala Scala是一门运行时基于JVM的编程语言,具备函数式编程和面向对象特点. 基本知识 basics 任意词均可作为符号名,对于关键词,以反引号包裹,避免使用下划线,避免带美元符的名字. 声 ...

  6. 【Scala】关于集合的各种知识点

    目录 映射Map 不可变Map 概述 操作实例 可变Map 概述 操作实例 Map的遍历 for循环遍历 格式 操作实例 模式匹配遍历 格式 操作实例 Tuple 元祖 概述 定义格式 获取元素方法 ...

  7. scala的object知识点

    1:object的中的代码,会在object对象被调用的时候执行且只会执行一次 object Demo{ println("gaoxing") def name = "n ...

  8. Scala入门学习笔记四--List使用

    前言 本篇将介绍一个和Array很相似的集合List,更多内容请参考:Scala教程 本篇知识点概括 List的构造 List与Array的区别 List的常用方法 List伴生对象的方法 ::和:: ...

  9. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

随机推荐

  1. WPF:CheckBox竖向的滑块效果

    原文:WPF:CheckBox竖向的滑块效果 之前做了一个横向的滑块效果,<WPF:CheckBox滑块效果>,其实我觉得那个不好看,今天又做了一个竖向的玩. <Style Targ ...

  2. javascript的代码块

    a block of code 注意到这个问题是在看书的时候,中文版中出现“代码片段”这样的词语,于是就去翻看了英文版的原书.书中的用了a block of code,难道不应该翻译成代码块吗?(作为 ...

  3. git 设置代理.

    git 设置代理:(因为网络有时太慢,需要用到 ss 代理..) git config --global http.proxy http://127.0.0.1:1080 取消 代理 git conf ...

  4. 浏览器端 禁止 html 使用后退 或者替换后退功能..

    知乎大佬的代码: 作者:独夜行 链接:https://www.zhihu.com/question/40511430/answer/166467343 来源:知乎 著作权归作者所有.商业转载请联系作者 ...

  5. POJ_3262 Protecting the Flowers 【贪心】

    一.题面 POJ3262 二.分析 这题要往贪心上面想应该还是很容易的,但问题是要证明为什么比值关系就能满足. 可以选择几个去分析,入1-6  与 2-15  和 1-6 与2-5 和 1-6 与 2 ...

  6. C#异步编程之基于任务的异步模式

    http://www.cnblogs.com/afei-24/p/6757361.html该文讲了基于任务的编程,这里再详细介绍一下.一.延续任务 private async static void ...

  7. 栈和递归的关系 144:Binary Tree Preorder Traversal

    前序遍历:根左右 //用栈来实现非递归解法/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeN ...

  8. C# Task超时规则

    需要知道以下的知识 正规的骚操作:https://stackoverflow.com/questions/4238345/asynchronously-wait-for-taskt-to-comple ...

  9. Counting Divisors HDU - 6069

    设n=p_1^{c_1}p_2^{c_2}...p_m^{c_m}n=p​1​c​1​​​​p​2​c​2​​​​...p​m​c​m​​​​,则d(n^k)=(kc_1+1)(kc_2+1)...( ...

  10. vue $index,$key已经移除了

    之前可以这样: <ul id="example"> <li v-for="item in items"> {{$index}} {{$k ...