以“标量方式”基于另一个集合排序值的集合]]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以“标量方式”基于另一个集合排序值的集合]]相关的知识,希望对你有一定的参考价值。

我必须根据一组可以用作另一个列表的子列表的键来对值的集合进行排序。目前,我有以下代码可以正常工作。但是,它使用可变的集合,我知道这不是在Scala中做到这一点的最佳方法。这样做的漂亮的“斯卡拉方式”是什么?谢谢。

var sorted: IndexedSeq[IndexedSeq[Any]]
//sortKeys is a list of lists containing sorting properties (index,descending/ascending) 
for (i <- (0 until sortKeys).reverse) {
      val index = sortKeys(i).get(i).getIndex
      val desc = sortKeys.get(i).descending
      if (desc) {
        sorted = sorted.sorted { (t1: IndexedSeq, t2: IndexedSeq) => -t1(index).asInstanceOf[Comparable[Any]].compareTo(t2(index)) }
      } else {
        sorted = sorted.sorted { (t1: IndexedSeq, t2: IndexedSeq) => t1(index).asInstanceOf[Comparable[Any]].compareTo(t2(index)) }
      }
    }

我必须根据一组可以用作另一个列表的子列表的键来对值的集合进行排序。目前,我有以下代码可以正常工作。但是,它使用...

答案

草图:

以上是关于以“标量方式”基于另一个集合排序值的集合]]的主要内容,如果未能解决你的问题,请参考以下文章

根据另一个集合项目对项目进行排序

基于包含不同值的不同集合生成变化的算法

MongoDB:如何为集合中的每个文档设置一个等于另一个字段值的新字段[重复]

MongoDB 使用另一个集合数组对文档进行排序

根据项目在另一个集合中被引用的次数对项目进行排序

MongoDB:基于另一个集合从一个集合中选择