目的

zip主要用于关联两个集合,关联的结果可以是Array,List等等,然后集合中的元素成为二元tuple

用法

//创建一个Array
scala> var names=Array("zhangsan","lisi","wangmazi")
names: Array[String] = Array(zhangsan, lisi, wangmazi)//创建另一个Array scores
scala> val scores=Array(60,70,90)
scores: Array[Int] = Array(60, 70, 90)//利用zip关联两个Array,形成一个新的Array,Array中的每个元素是一个Tuple,详见tuple
scala> names.zip(scores)
res0: Array[(String, Int)] = Array((zhangsan,60), (lisi,70), (wangmazi,90))//zip关联的另一种写法
scala> names zip scores
res1: Array[(String, Int)] = Array((zhangsan,60), (lisi,70), (wangmazi,90))//创建一个Seq
scala> val nums=Seq(0,1,2,3,4)
nums: Seq[Int] = List(0, 1, 2, 3, 4)//创建一个List
scala> val series=List("a","b","c")
series: List[String] = List(a, b, c)//关联2个List和Seq,任意集合均可关联,集合长度不一样时候以短的为准
scala> nums.zip(series)
res5: Seq[(Int, String)] = List((0,a), (1,b), (2,c))//关联也有主动被动的问题
scala> series.zip(nums)
res6: List[(String, Int)] = List((a,0), (b,1), (c,2))//关联集合长度不一样时可以用默认值处理.
scala> nums.zipAll(series,"A",20)
res7: Seq[(Any, Any)] = List((0,a), (1,b), (2,c), (3,20), (4,20))scala> series.zipAll(nums,"A",20)
res8: List[(String, Int)] = List((a,0), (b,1), (c,2), (A,3), (A,4))scala> series
res9: List[String] = List(a, b, c)
//关联索引和元素自身
scala> series.zipWithIndex
res10: List[(String, Int)] = List((a,0), (b,1), (c,2))//关联时自定义索引的起始位置
scala> val ps=series.zip(Stream from 10)
ps: List[(String, Int)] = List((a,10), (b,11), (c,12))
//如果想解除关联,恢复自由身
scala> ps unzip
warning: there was one feature warning; re-run with -feature for details
res12: (List[String], List[Int]) = (List(a, b, c),List(10, 11, 12))

scala zip--拉链操作入门相关推荐

  1. Scala 之 Map 操作大全

    Scala的Map简介 Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala 中不可变的 Map 是有序的,可变的 Map 是无序 ...

  2. scala字符串的拉链操作_在Scala中对字符串进行操作

    scala字符串的拉链操作 Scala字符串操作 (Scala strings operation) A string is a very important datatype in Scala. T ...

  3. 【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )

    文章目录 一.判定是否是第一次启动 二.递归删除文件操作 三.解压 Zip 文件操作 四.解压操作相关代码 参考博客 : [Android 安全]DEX 加密 ( 常用 Android 反编译工具 | ...

  4. 前端 IndexDB 操作入门教程

    前端 IndexDB 操作入门教程 idb-js 基于indexdb本地数据库的封装 文档地址 安装: npm install idb-js --save 使用: 第一步: 引入Idb import ...

  5. MongoDB基本语法和操作入门

    转自:https://blog.csdn.net/qq_25479327/article/details/81145850 一.MongoDB基本语法和操作入门 数据库操作 show dbs; // ...

  6. Fluent 操作入门实例-从建模到计算结果可视化

    Fluent 操作入门实例 前言: 本文详细图文介绍如何使用ANSYS Workbench 实现Fluent的基本入门操作实例. 1.打开workbench 2.将Fluid Flow(Fluent) ...

  7. python文件操作入门

    文件操作入门 单个文件读写: 下面这首诗存在一个txt文件里,文件路径为: "D:\文件集散地\白雪歌送武判官归京.txt" .请将这首诗的前5句存到另一个txt文件里. 北风卷地 ...

  8. linux文件操作管理,linux 文件管理操作入门

    mkdir -p /root/kali/bp/shell  一路创建文件夹直到生成文件夹shell,中间没有kali文件夹的话也会自动创建生成 tar解压缩 范例一:将整个 /etc 目录下的文件全部 ...

  9. SuperMap iDesktop 操作入门(一)创建文件型工作空间

    操作入门(一):创建文件型工作空间 (1)打开iDesktop软件 (2)创建一个工作空间文件 右键"未命名工作空间->另存工作空间"把工作空间存储为文档 (3)设置工作空间 ...

最新文章

  1. 从Ops到NoOps,阿里文娱智能运维的关键:自动化应用容量管理
  2. 安卓高手之路之PackageManagerservice(二)
  3. python进行linux编程,Python之函数进阶
  4. 九、跳表(Skip List)
  5. nyoj990蚂蚁感冒
  6. 各大互联网大厂年终奖一览表!
  7. html渐变效果做网页,CSS实现文本渐变效果
  8. 征信逾期花钱就能修复?小心跳进骗子的坑里面去
  9. 自定义vue-cli生成项目模板配置(1)
  10. 46. 全排列015(回溯法求解)
  11. 欢乐纪中A组周六赛【2019.5.18】
  12. react(87)--批量删除进行置空操作
  13. Mysql -uroot -p 登陆不上_mysql的登陆和退出命令格式
  14. 阿里云正式推出消息队列Kafka:全面融合开源生态
  15. 洛谷P1494 [国家集训队]小Z的袜子
  16. 集成springboot案例_SpringBoot开发者都在用的五款优质扩展,每个都很能打!
  17. python中的@、-、*arg、**kwarg使用方法[探索1]
  18. 《SDN期末作业——实现负载均衡》
  19. win7下用UtralISO制作U盘系统盘--UltraISO打开Ubuntu只有EFI文件夹
  20. vscode实现右键文件夹选择open with code

热门文章

  1. python编写登录接口_使用python编写一个登录接口
  2. mysql执行程序_Sql在Mysql的执行
  3. python垃圾回收离职_垃圾回收gc.md
  4. 此版本的visual studio无法打开下列项目_深度学习实现高精度钢琴曲转谱Piano transcription项目简明使用教程...
  5. python3参考手册_Python3 中文手册
  6. springmvc07 Json处理
  7. spring学习--基于注解方式创建对象AOP
  8. visual studio可以开发app吗_郑州app开发价格是怎么定得呢?预约理发app好做吗
  9. python pil怎么调用_python3如何使用pil
  10. html中遍历表单,萌新提问!!!如何用for循环循环表单?