集合扁平化操作 | 学习笔记

简介: 快速学习集合扁平化操作

开发者学堂课程【Scala 核心编程 - 进阶集合扁平化操作学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9050


集合扁平化操作


内容介绍:

一、扁平化的说明

二、扁平化的测试


一、扁平化的说明

1.flatmap 映射:

flat 即压扁,压平扁平化映射

2.flatmap:

flat 即压扁,压平,扁平化,效果就是将集合中的每个元素的子元素如果遍历出的元素还是一个集合则继续遍历,映射到某个函数并返回新的集合。

3.看一个案例: 

//将传入的字符串转成大写

val names = List("Alice", "Bob","Nick")

def upper( s : String ) : String ={

s. toUpperCase

}

//注意:每个字符串也是 char 集合

println(names.flatMap(upper))

4.说明:

flatMap 将 upper 传入,这个 upper 是将传入的字符串转成大写的,flatMap会将“Alice” 二次遍历,也就是说,如果这个元素还是一个集合,则会再次遍历,类似于底层的代码。

下面是底层的部分代码:

def map(f:Int=>Int):List[Int]={

//遍历集合

for(item<-this.list1){

/*如果 item 是一个集合,则继续 for 循环(集合里面有集合,则不停的打散,遍历)*/

for(item2<-item){

list2=list2:+f(item)

}

}

list2

}


二、扁平化的测试

object FlatMapDemoo1 {

def main( args : Array [string]): unit = {

val names = List( "Alice","Bob","Nick")

//需求是将List集合中的所有元素,进行扁平化操作,即把所有元素//打散

val names2 = names.flatMap( upper)

printLn( “name2=” +names2)

}

def upper( s : String ) :String = {

s. toupperCase

}

}

运行结果为:

names2=List(A,L,I,C,E,B,O,B,N,I,C,K)

说明 Alice Bob Nick 在底层相当于继续遍历,将字符串“打散”为字母。

相关文章
|
13天前
|
索引
10.30-11.5每周学习小结(31日)(有关集合的小结)
10.30-11.5每周学习小结(31日)(有关集合的小结)
|
1月前
|
存储 安全 Java
集合技术文章
集合技术文章
|
1月前
|
存储 安全 Java
集合学习笔记(二)
TreeMap是红黑树实现的有序映射,操作如containsKey、get、put、remove的时间复杂度为log(N)。它有root、size和comparator成员,Entry节点按Key排序,比较依赖comparator。Map与Set的区别在于Map包含键值对,Set仅存储元素,二者皆无重复。List与Set的区别在于List有序且可重复元素。ArrayList基于数组,适合随机访问,而LinkedList基于链表,插入删除更高效但占用更多内存。
|
1月前
|
存储 程序员 索引
数据结构深度剖析:列表、元组、字典和集合
【4月更文挑战第8天】Python的四种基础数据结构——列表、元组、字典和集合,各自拥有独特的特性和应用场景。列表是可变序列,方便增删改元素;元组不可变,常用于保证数据不变性;字典是键值对容器,快速访问通过键;集合是无序不重复元素集,适合成员测试和去重。理解并灵活运用这些数据结构,能提升代码效率,有效处理和分析数据。
|
1月前
|
存储 安全 算法
|
11月前
|
存储 C#
C#视频—浅谈数组与集合的差别
C#视频—浅谈数组与集合的差别
|
11月前
数组扁平化
没有指定层数的数组扁平化
leetcode_341. 扁平化嵌套列表迭代器
题目链接: 341. 扁平化嵌套列表迭代器 前排提示,这是一道跟树有关的题目,而且是 N 叉树,关于 N 叉树的入门题目可以参考我之前的一篇文章,leetcode 之浅谈 N 叉树 题目 给你一个嵌套
leetcode_341. 扁平化嵌套列表迭代器
数据结构83-集合常见操作之子集代码
数据结构83-集合常见操作之子集代码
43 0
数据结构83-集合常见操作之子集代码
数据结构79-集合常见操作之并集
数据结构79-集合常见操作之并集
46 0
数据结构79-集合常见操作之并集