比较简单,直接上例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
object takeWhileTest {
   def main(args: Array[String]): Unit = {
      val names = List("spark""hadoop","kafka","hive""mesos""zero""xyz","marathon")
      //需求:将names容器中,获取/过滤出元素长度为4的元素,
      //takeWhile, 从第一个元素开始判断,满足条件,就留下,直到遇到第一个不满足的条件的元素,就结束循环
      //可见,takeWhile 有可能并不是对所有的元素进行操作的
      names.takeWhile(_.length > 4 ).foreach{x => print(x + " ")}
      println("\n------------------")
      //从左边开始获取2个元素,
      names.take(2).foreach{x => print(x + " ")}
      println("\n------------------")
      //从右边开始获取4个元素,
      names.takeRight(4).foreach{x => print(x + " ")}
      println("\n------------------")
      //filter, 同样,满足条件,就留下。是对所有的元素,进行操作的
      names.filter(_.length > 4).foreach{x => print(x + " ")}//将"xyz"元素,过滤掉了
   }
}

结果:

1
2
3
4
5
6
7
spark hadoop kafka 
------------------
spark hadoop 
------------------
mesos zero xyz marathon 
------------------
spark hadoop kafka mesos marathon

同样,marathon源码中,也有体现,如下:

总结:

take(3)---> 表示,取出前3个元素

takeRight(3)----> 表示,从后面/右边开始获取,取出3个元素

takeWhile()---> 表示,从左边开始,将满足条件的元素取出来,直到遇到第一个不满足条件的元素

filter --> 表示,取出所有满足条件的元素

本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1963582 ,如需转载请自行联系原作者

每天学一点Scala之 take、takeRight、takeWhile 与 filter相关推荐

  1. scala 系列 ---- take,takeRight,takeWhile的使用详解用法及代码示例

    take : takeRight(n: Int): List[A] 提取列表的前n个元素 takeRight: takeRight(n: Int): List[A] 提取列表的最后n个元素 takeW ...

  2. 每天学一点Scala之 伴生类和伴生对象

    1.  object 相当于class的单个实例,因此,在object里声明的变量都是静态变量,静态方法 2.  在object里声明的变量,都是全局变量,也就是类的公共属性,或者类似于java中父类 ...

  3. 每天学一点Scala之implict 隐式参数

    什么是隐式参数? 在函数或者方法中,定义一个用implicit关键字修饰的参数:此参数就是隐式参数了.Scala会自动尝试在作用域内查询用implicit修饰的对象,并自动注入参数 Scala查找隐式 ...

  4. 每天学一点Scala之 高阶函数 flatten

    flatten 就是将多个集合展开,组合成新的一个集合. 下面是marathon源码用到flatten的场景 转载于:https://blog.51cto.com/xingej/1959396

  5. 每天学一点Scala之Try

    参考文章:http://www.jianshu.com/p/0de79845eaa4 Try[A] 同样是一种容器.Option[A] 也是一种容器 Try[A] 表示一种计算, 如果计算成功,返回是 ...

  6. 大学生学python到底有没有有-为什么我会想建议每个大学生都学一点编程?

    原标题:为什么我会想建议每个大学生都学一点编程? 一个今年上岸.成功录取到中山大学的同学,昨天疯狂轰炸我: 他没想到导师主动联系他,让他参加非常重要的课题研究. "当初抱着试一试的心态学的编 ...

  7. 人人都要学一点深度学习(1)- 为什么我们需要它

    人人都要学一点深度学习(1)- 为什么我们需要它 版权声明 本文由@leftnoteasy发布于 http://leftnoteasy.cnblogs.com, 如需全文转载或有其他问题请联系whee ...

  8. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 原文 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 感谢大家在上一篇 学一 ...

  9. 串行异步通信_每天学一点/ 电工:PLC:串行通信

    每天学一点/ 电工案例:西门子PLC STEP7-SMARTPLC:串行通信 1. 并行通信与串行通信 并行通信以字节或字为单位传输数据,已很少使用.串行通信每次只传送二进制数的一位,最少需要两根线就 ...

  10. 学一点django基础

    学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...

最新文章

  1. 7天备战蓝桥杯之第一天
  2. SpringMVC的运行原理
  3. 为什么说 Rust 是编程的未来?
  4. 物联网大数据平台有哪些功能特点
  5. windows10应用商店加速方法
  6. sympy的dsolve函数
  7. 微信支付接入-弹出支付框输入密码后一直在转圈,20s后提示:支付失败,请稍后再试
  8. Macbook Pro开机黑屏如何自查问题
  9. JS中的 || 与 运算符详解
  10. 如何把docx转成doc
  11. 落地零售智能体,百联集团全力打造面向未来的数字化商业体
  12. Windows系统中设置软件的开机自动启动
  13. 侵入式及非侵入式概念
  14. 错误代码: 1054 Unknown column 'course' in 'field list'
  15. 大白话之辩论DDD,阿里面试中台化理解
  16. Python4班平均成绩统计_期中考试了,十二个班的成绩,如何使用excel计算平均值、排名...
  17. [code] PTA 胡凡算法笔记 DAY028
  18. 十一项关于农业领域的人工智能研究进展
  19. python中的第三方库 cdk_用Jython调用CDK(Chemistry Development Kit)显示分子并高亮子结构...
  20. c语言指针题讲解,C语言指针经典练习题-及答案讲解.doc

热门文章

  1. Labview实现字符串加密
  2. Linux下的python.......安装
  3. 构建Web内容的技术
  4. Spark 广播变量BroadCast
  5. Sql Server 的sa用户被禁用
  6. 11G新特性 -- ASM Fast Mirror Resync
  7. struts2 中的零配置
  8. 中电网嵌入式系统主题月即将开幕
  9. 网站如何做分布式(集群)的大纲
  10. review一下上一年的积累