一层嵌套,但是flatten的要求需要List内部类型都一样, 例如都为List

scala> List(List(1), List(2), List(3)).flatten
res4: List[Int] = List(1, 2, 3) scala> List(List(List(1)), List(List(2)), List(List(3))).flatten
res5: List[List[Int]] = List(List(1), List(2), List(3))

多层嵌套

def flatten(ls: List[Any]): List[Any] = ls flatMap {
case i: List[_] => flatten(i)
case e => List(e)
} val k = List(1, List(2, 3), List(List(List(List(4)), List(5)), List(6, 7)), 8)
flatten(k)

非同质数据类型

@Test
def test8(): Unit = {
val l = Seq(1, Seq(2, 3))
val r = l.flatMap { x => x match {
case a: Seq[_] if a.size > 1 => a
case b: Int => Seq(b)
}
}
println(r)
}
List(1, 2, 3)

https://stackoverflow.com/questions/37340912/scala-flatmap-what-are-ms-and-e/37349449#37349449

https://www.brunton-spall.co.uk/post/2011/12/02/map-map-and-flatmap-in-scala/

https://stackoverflow.com/questions/1737452/how-to-flatten-a-list-of-different-types-in-scala

Scala集合flatten操作的更多相关文章

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

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

  2. Scala集合操作

    大数据技术是数据的集合以及对数据集合的操作技术的统称,具体来说: 1.数据集合:会涉及数据的搜集.存储等,搜集会有很多技术,存储技术现在比较经典方案是使用Hadoop,不过也很多方案采用Kafka.  ...

  3. scala集合和高级函数操作

    scala常用函数操作 reduceLeft   是将集合的元素从左向右进行所需要的相应操作,图以减法为例展示,表达的算法是 : 1-2-3-4-5 例: (1 to 5).reduceLeft(_ ...

  4. Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析

    本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 --------------------------------------------------------------- ...

  5. scala集合与数据结构

    1.数据结构特点 Scala同时支持可变集合和不可变集合,不可变集合从不可变,可以安全的并发访问. 两个主要的包: 不可变集合:scala.collection.immutable 可变集合: sca ...

  6. Scala函数高级操作

    字符串高级操作:***** 非常重要 将函数赋值给变量/值def sayHello(name:String): Unit = { println(s"Hello:$name")} ...

  7. scala集合上常用的方法

    sacala 关于集合常用的操作 map1.映射:对集合中的每一个元素进行执行某一项操作2.返回值类型,正常情况不变,原来集合是什么类型,就返回什么类型3.元素类型,根据我们函数的返回值类型 val ...

  8. Scala集合常用方法解析

    Java 集合 : 数据的容器,可以在内部容纳数据  List : 有序,可重复的  Set : 无序,不可重复  Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合( ...

  9. Scala集合笔记

    Scala的集合框架类比Java提供了更多的一些方便的api,使得使用scala编程时代码变得非常精简,尤其是在Spark中,很多功能都是由scala的这些api构成的,所以,了解这些方法的使用,将更 ...

  10. Scala集合(二)

    将函数映射到集合 map方法 val names = List("Peter" , "Paul", "Mary") names.map(_. ...

随机推荐

  1. 初识urllib与requests

    urllib与requests 一.urllib的学习 学习目标 了解urllib的基本使用 1.urllib介绍 除了requests模块可以发送请求之外, urllib模块也可以实现请求的发送,只 ...

  2. MogDB 安装解压错误:cannot run bzip2: No such file or directory

    MogDB 安装解压错误:cannot run bzip2: No such file or directory 本文出处:https://www.modb.pro/db/403662 问题症状 Mo ...

  3. singalr 可以连接但是无法发送消息

    前言 在一次测试singalr的过程中,发现一个问题,那就是连接成功了,但是发送消息没有响应. 原因及解决 如何可以连接但是发不了消息,net的锅,需要4.0以上,所以我们发布iis的时候也应该选择4 ...

  4. Effective Python:简介

    作者:布雷特·斯拉特金 本书的大部分范例代码都遵循Python 3.7版本的语法规范,Python 3.7发布于2018年6月.另外,书里还会给出一些采用Python 3.8语法规范所写的范例,让大家 ...

  5. gitee基于webhooks实现前端简单自动化部署

    1.为什么采用自动化部署 简而言之,程序员优秀传统:懒 =>高级生产力. 基于gitee进行的自动化部署,服务器环境为Ubuntu 基于webhooks进行的自动化部署更加轻快便捷 2.部署步骤 ...

  6. 力扣570(MySQL)-至少有5名直接下属的经理(简单)

    题目: Employee 表包含所有员工和他们的经理.每个员工都有一个 Id,并且还有一列是经理的 Id. 给定 Employee 表,请编写一个SQL查询来查找至少有5名直接下属的经理.对于上表,您 ...

  7. 力扣50(java)-Pow(x,n)(中等)

    题目: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即xn ). 示例 1: 输入:x = 2.00000, n = 10输出:1024.00000示例 2: 输入:x = 2.10 ...

  8. 成本节省 50%,9人团队使用函数计算开发 wolai 在线文档应用

    简介: 通过使用函数计算,wolai 的前端工程师们就可以把从前到后的一整套开发流程负责起来,我们的研发迭代速度非常快.   ​ 作者| 马锐拉(wolai.com 创始人) 我们的日常工作场景几乎离 ...

  9. SmartNews:基于 Flink 加速 Hive 日表生产的实践

    简介: 将 Flink 无缝地集成到以 Airflow 和 Hive 为主的批处理系统的技术挑战和应对方案. 本文介绍了 SmartNews 利用 Flink 加速 Hive 日表的生产,将 Flin ...

  10. [Kali] Kali 信息收集

      网络空间测绘. 网络空间测绘是2016年出现的一个概念,主要指用一些技术方法,来探测全球互联网空间上的节点分布情况和网络关系索引,构建全球互联网图谱的一种方法. nmap端口扫描. 子域名爆破. ...