Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较Scala中的两个整数数组?_Scala - Fatal编程技术网

如何比较Scala中的两个整数数组?

如何比较Scala中的两个整数数组?,scala,Scala,查找第一个数组中的可用数字,第二个数组中的数字。如果找不到数字,则直接取较低的数字 val a = List(1,2,3,4,5,6,7,8,9) val b = List(1,5,10) 比较a和b后的预期输出 1 --> 1 2 --> 1 3 --> 1 4 --> 1 5 --> 5 6 --> 5 7 --> 5 8 --> 5 9 --> 5 谢谢您可以使用的to()和lastOption方法如下: val a = List(

查找第一个数组中的可用数字,第二个数组中的数字。如果找不到数字,则直接取较低的数字

val a = List(1,2,3,4,5,6,7,8,9)
val b = List(1,5,10)
比较a和b后的预期输出

1 --> 1
2 --> 1
3 --> 1
4 --> 1
5 --> 5
6 --> 5
7 --> 5
8 --> 5
9 --> 5
谢谢

您可以使用的
to()
lastOption
方法如下:

val a = List(1, 2, 3, 4, 5, 6, 7, 8, 9)
val b = List(1, 5, 10)

import scala.collection.immutable.TreeSet

// Convert list `b` to TreeSet
val bs = TreeSet(b.toSeq: _*)

a.map( x => (x, bs.to(x).lastOption.getOrElse(Int.MinValue)) ).toMap
// res1: scala.collection.immutable.Map[Int,Int] = Map(
//   5 -> 5, 1 -> 1, 6 -> 5, 9 -> 5, 2 -> 1, 7 -> 5, 3 -> 1, 8 -> 5, 4 -> 1
// )
请注意,列表
a
b
都不需要排序


更新


启动Scala
2.13
,将
TreeSet
的方法
to
替换为
rangeTo

以下是使用
收集功能的另一种方法

val a = List(1,2,3,4,5,6,7,8,9)
val b = List(1,5,10)
val result = a.collect{
  case e if(b.filter(_<=e).size>0) => e -> b.filter(_<=e).reverse.head
}
//result: List[(Int, Int)] = List((1,1), (2,1), (3,1), (4,1), (5,5), (6,5), (7,5), (8,5), (9,5))
val a=List(1,2,3,4,5,6,7,8,9)
val b=列表(1,5,10)
val result=a.collect{

案例e如果(b.filter(_0)=>e->b.filter(_为什么这被标记为
apachespark
)?公平地说,可能是重复的,不是完全重复,但问题是+
map
。我可以假设两个输入列表都已排序吗?