, учитывая список Tuple2, я хочу отсортировать их так, чтобы второй элемент одного из них был первым элементом следующего. Я попытался сделать это с помощью sortWith, но он работает в некоторых случаях, но не в других. Может ли кто-нибудь увидеть, где я запутался?Сортировка списка цепочечных кортежей с sortWith
Welcome to Scala version 2.10.3-20130923-e2fec6b28dfd73482945ffab85d9b582d0cb9f17 (OpenJDK 64-Bit Server VM, Java 1.7.0_71).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val l = List((2,3),(1,2),(3,4))
l: List[(Int, Int)] = List((2,3), (1,2), (3,4))
scala> l.sortWith((x,y) => x._2 == y._1)
res0: List[(Int, Int)] = List((1,2), (2,3), (3,4))
scala> val m = List((2,3),(5,6),(1,2),(3,4),(4,5))
m: List[(Int, Int)] = List((2,3), (5,6), (1,2), (3,4), (4,5))
scala> m.sortWith((x,y) => x._2 == y._1)
res1: List[(Int, Int)] = List((2,3), (5,6), (1,2), (3,4), (4,5))
Большое спасибо
Сортировка не работает. Например, он сортирует (3,2), (2,1) назад. –
Хмм, комментарий, который я прокомментировал, был удален, поэтому теперь похоже, что мой комментарий был направлен на OP. Для записи был комментарий об использовании «отсортированного» вместо «sortWith» –