鉴于[((String, String), Double)]Scala 中的以下数据类型,我将如何使用 sortBy 函数对第一个字符串和第二个字符串进行排序?对多个值进行排序有一些答案,但在下面的情况下呢?
var test =
List((("C","c"),4.3), (("A","c"),1.4), (("C","d"),80.1))
test.sortBy(???).foreach(println)
Run Code Online (Sandbox Code Playgroud)
输出应提供以下内容
(("A","c"),1.4),
(("C","c"),4.3),
(("C","d"),80.1)
Run Code Online (Sandbox Code Playgroud)
由于每个元组((s1, s2), d)中的元素已经按照您想要的排序顺序(从左到右),您可以简单地执行以下操作:
test.sortBy(identity)
// List[((String, String), Double)] = List(((A,c),1.4), ((C,d),80.1), ((D,c),4.3))
Run Code Online (Sandbox Code Playgroud)
或者,只需使用sorted:
test.sorted
// List[((String, String), Double)] = List(((A,c),1.4), ((C,d),80.1), ((D,c),4.3))
Run Code Online (Sandbox Code Playgroud)