在Scala中使用Ordered[String]对字符串进行排序?

3xiyfsfu  于 9个月前  发布在  Scala
关注(0)|答案(2)|浏览(83)

我需要在Java中有一个等价的compareWith(a,b)方法,在Scala中。
我有一个字符串列表,我需要通过比较它们来排序。sortBy只取一个字符串并返回一个分数,但在我的例子中这还不够,我需要将两个字符串相互比较,然后根据哪一个更好返回一个数字。
似乎唯一的选择是编写一个自定义case类,将字符串转换为它,然后将它们转换回来。出于性能原因,我希望避免这种情况,因为我有大量的数据要处理。
有没有一种方法可以只使用字符串?

rqmkfv5c

rqmkfv5c1#

我想你在找sortWith
sortWith(lt: (A, A) ⇒ Boolean): Repr
根据比较函数对此序列进行排序。
注意:对于无限大小的集合,不会终止。
排序是稳定的。也就是说,相等的元素(由lt确定)在排序后的序列中以与原始序列相同的顺序出现。
lt比较函数,用于测试第一个参数是否在第二个参数之前。
范例:

List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
ckocjqey

ckocjqey2#

我想.sorted会成功的。

相关问题