Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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,我有Seq Seq((date1, date2), (date1, date3)) 我需要通过将两个日期比较成元组来过滤这个序列。例如:date1.isBefore(date2)这可能会有所帮助。最后有两个不同的例子,可以交换比较的日期顺序,这可能很有用 scala> val date1 = new java.util.Date(System.currentTimeMillis()) val date1: java.util.Date = Wed Sep 23 11:21:24 PDT

我有Seq

Seq((date1, date2), (date1, date3))

我需要通过将两个日期比较成元组来过滤这个序列。例如:date1.isBefore(date2)

这可能会有所帮助。最后有两个不同的例子,可以交换比较的日期顺序,这可能很有用

scala> val date1 = new java.util.Date(System.currentTimeMillis())
val date1: java.util.Date = Wed Sep 23 11:21:24 PDT 2020

scala> val date2 = new java.util.Date(System.currentTimeMillis())
val date2: java.util.Date = Wed Sep 23 11:21:28 PDT 2020

scala> val xs = Seq((date1,date2))
val xs: Seq[(java.util.Date, java.util.Date)] = List((Wed Sep 23 11:21:24 PDT 2020,Wed Sep 23 11:21:28 PDT 2020))

scala> xs.filter(t => t._1.before(t._2))
val res1: Seq[(java.util.Date, java.util.Date)] = List((Wed Sep 23 11:21:24 PDT 2020,Wed Sep 23 11:21:28 PDT 2020))

scala> xs.filter(t => t._2.before(t._1))
val res2: Seq[(java.util.Date, java.util.Date)] = List()

你能给出这个的样本输出吗?不清楚你的意思。是否只保留第一个日期在另一个日期之前的元素?Seq(((“2020-09-01”、“2020-09-01”)、(“2020-09-01”、“2020-09-02”)、(“2020-09-02”、“2020-09-01”)、(“2020-09-01”、“2020-10-01”)=>Seq((“2020-09-01”、“2020-09-02”)、(“2020-09-01”、“2020-10-01”)是的。我想得到另一个序列,其中第一个日期在元组的第二个日期之前。如何在过滤后从_1获得最小值,从_2获得最大值?我需要从xs.filter(t=>t.\u 1.before(t.\u 2))。\u 1 val maxDate rom xs.filter(t=>t.\u 1.before(t.\u 2))。可以使用
head
访问seq以获取第一个元素或
(i)
,其中
i
是元素的索引。一个例子是
xs.filter(t=>t.\u 1.before(t.\u 2)).head.\u 1
但是
xs.filter(t=>t.\u 1.before(t.\u 2))
我有Seq(tuple(LocaDate,LocalDate)),我需要tuple的所有第一个元素的一个最小值和所有第二个元素的一个最大值在我的例子中:
val xs=Seq(((“2020-09-01”,“2020-09-01”),(“2020-09-01”),“2020-09-02”、“2020-09-02”、“2020-09-01”、“2020-09-01”、“2020-09-01”)val xs2=xs.filter(t=>t.\u 1.before(t.\u 2))//Seq(((“2020-09-01”、“2020-09-02”)、(“2020-09-01”、“2020-10-01”)
我需要
val minDate=min(xs2.\u 1)/“2020-09-01”val maxDate=max(xs2)/“2020-10-01“
对于该用例,可能更容易将元组转换为
列表
,然后取最小值的
min
,取最大值的
max
。添加这个
.map(t=>List(t.\u 1,t.\u 2))。将
转置到
res1
res2
将转换为
List
,然后
transpose
以获得最小值和最大值的
列表。然后可以对结果使用
min
max