scala中如何根据Array[(Double,Double)]中的第一个元素做排序
时间: 2023-04-10 19:03:33 浏览: 245
在 Scala 中,可以使用 sortBy 方法对 Array[(Double, Double)] 中的第一个元素进行排序。具体实现代码如下:
val arr = Array((3.0, 4.0), (1.0, 2.0), (5.0, 6.0))
val sortedArr = arr.sortBy(_._1)
其中,_._1 表示对元组中的第一个元素进行排序。执行完上述代码后,sortedArr 的值为 Array((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))。
相关问题
scala中如何把Array[(Double,Double)]转换为Array[Double]
可以使用flatMap和toArray方法将Array[(Double,Double)]转换为Array[Double],代码如下:
val arr: Array[(Double, Double)] = Array((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))
val result: Array[Double] = arr.flatMap(t => Array(t._1, t._2)).toArray
注意:这是一个编程类的问题,可以回答。
用scala写代码,对一个Array[Double]做操作,将所有相邻项之间差值小于2的取出,将其中索引连续的值存放到一起
我可以回答这个问题。可以使用scala的zip方法将数组中相邻的元素组成元组,然后使用filter方法筛选出差值小于2的元组,最后使用flatMap方法将符合条件的元组中的索引连续的值存放到一起。具体代码如下:
```scala
val arr = Array(1.0, 2.0, 4.0, 5.0, 7.0, 8.0)
val result = arr.zip(arr.tail).filter { case (a, b) => Math.abs(a - b) < 2 }.flatMap { case (a, b) =>
if (arr.indexOf(a) + 1 == arr.indexOf(b)) List(a, b)
else List(a)
}
println(result.mkString(","))
```
输出结果为:1.0,2.0,4.0,5.0,7.0,8.0
阅读全文