博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala的Tuple
阅读量:6981 次
发布时间:2019-06-27

本文共 692 字,大约阅读时间需要 2 分钟。

Tuple和List一样,是长度不变,内容也不可变的

Tuple的元素个数不能大于22个,否则编译出错

 通过下标_n取数据,这是和List,Array的不同点

 

Tuple 不像List一样有map、flatMap 等方法直接操作元素,只能通过混入的ProductN(n代表1-22的数字) 的productIterator函数生成一个Iterator来操作数据,并且productIterator的返回类型是Iterator[Any] ,类型参数是Any ,所以操作数据的时候还要进行类型转换。比如_.asInstanceOf[Int] 或者模式匹配

 

例子
例子:val m = Map(2->(3,2) , 1->(2,1,3)) 怎么实现相同key的元素相加,得到 Map(2->5 , 1->6) 的结果? 其中value是个元组,元组中可以有任意多个(1-22个)Int类型的数字
 
解决方案: val m2=m.mapValues(_.productIterator.map(_.asInstanceOf[Int]).sum) 
 
object mapplus2 extends App {
  val m = Map(2->(3,2) , 1->(2,1,3))
  val m2=m.mapValues(_.productIterator.map(_.asInstanceOf[Int]).sum)
  println(m2)
}
运行结果:Map(2 -> 5, 1 -> 6)

转载于:https://www.cnblogs.com/jackie2016/p/5664289.html

你可能感兴趣的文章
maven学习(4)-Maven 构建Web 项目
查看>>
java高并发编程(二)
查看>>
【转】unity3d 在UGUI中制作自适应调整大小的滚动布局控件
查看>>
Java 对synchronized的补充Lock锁
查看>>
Collection集合List、Set
查看>>
Effective java 43返回零长度的数组或者集合而不是null
查看>>
Spring学习系列(二) 自动化装配Bean
查看>>
学习Mybatis与mysql数据库的示例笔记
查看>>
将一个普通的java项目转化为maven项目
查看>>
Interesting visualization tools for profiling.
查看>>
可以左右移动多选下拉列表的javaScipt(可以兼容IE和firefox)
查看>>
POJ 2752 Seek the Name, Seek the Fame
查看>>
Ajax
查看>>
javascript通过json数据按格式生成一个按字母分类排序的分类信息表
查看>>
错误:You can't specify target table 'xxx' for update in FROM clause的解决
查看>>
新盒模型移动端的排版
查看>>
sql语句动态创建连接服务器
查看>>
ChaLearn Gesture Challenge_2:examples体验
查看>>
asp.net 获取当前时间的格式
查看>>
Java实现二维码
查看>>