用Scala实现集合中相邻元素间的差值
2015-01-03 15:29
274 查看
欢迎转载,转载请注明出处,徽沪一郎。
今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a,b,c,d)中(b-a,c-b,d-c)
[/code]
上述代码即可求出两两差值。代码含义稍作解释:
tail表示一个集合中除首元素外的剩余元素,也是一个集合。
zip将两个集合组成一个数值对集合,比如原来有两个集合分别是(a,b,c,d), (1,2,3,4),使用zip之后,形成((a,1),(b,2),(c,3),(d,4))
map操作中的p._1和p._1表示tuple中的第一个元素和第二个元素
head|tail head表示头元素,tail表示除head之外的剩余元素集合
init|last last表示尾元素, init表示除尾元素之外的剩余元素集合
概要
代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找。今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a,b,c,d)中(b-a,c-b,d-c)
解法
val l1 = 1 to 10 toList val l2 = l1.tail l1.zip(l2).map(p=>(p._2 - p._1)
[/code]
上述代码即可求出两两差值。代码含义稍作解释:
tail表示一个集合中除首元素外的剩余元素,也是一个集合。
zip将两个集合组成一个数值对集合,比如原来有两个集合分别是(a,b,c,d), (1,2,3,4),使用zip之后,形成((a,1),(b,2),(c,3),(d,4))
map操作中的p._1和p._1表示tuple中的第一个元素和第二个元素
衍生
既然讲了首元素和剩余元素,肯定要讲到其对立面。分别引述如下head|tail head表示头元素,tail表示除head之外的剩余元素集合
init|last last表示尾元素, init表示除尾元素之外的剩余元素集合
相关文章推荐
- scala实现相邻两个元素挑换位置的代码,哈哈
- Ruby实现求数组内相邻元素的最大和-《编程珠玑》问题求解
- asp.net 实现获取一个集合数组中出现次数最多的元素
- “像元分组” 算法:将二值图像中处于相邻的元素进行分组标号, 使得属于同一个分组的像元集合,其编号都相同
- 如何实现在遍历集合的过程中删除其中的元素
- ASP.NET中实现把form表单元素转为实体对象或集合
- 如何使用反射确定一个属性是否实现了IList接口,如何确定元素量为空的集合的元素类型。
- 求数组相邻元素差值的最大值快速算法(C++版)
- java中TreeSet集合如何实现元素的判重
- delphi 递归实现从m 个集合中 任取一个元素 生成组合
- Set集合实现元素不重复原理
- 有序集合元素的字符串自然顺序实现
- Java学习疑点(6)--Set集合添加元素时底层如何实现无重复元素?
- 删除JAVA集合中元素的实现代码
- 重写Java Object对象的hashCode和equals方法实现集合元素按内容判重
- 利用集合的静态方法Collections.shuffle() 乱序集合中的元素,实现自动理牌
- 实数序列,求值相邻的两个元素的最大差值
- 实现不用循环,删除集合中的重复(任意)元素
- java-集合类(3)-实现比较器(Comparator)接口-LinkedList针对插入删除、开始处增加元素
- Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序)