Предположим, у нас есть список значений, отсортированных по некоторому порядку. У нас также есть карта элементов, сопоставленных с этими значениями. Мы хотим получить коллекцию элементов с карты в том же порядке, в каком их ключи находятся в списке. Простой способ сделать это:
val order = Seq("a", "b", "c")
val map = Map("a" -> "aaa", "c" -> "ccc")
val elems = order.map(map.get(_)).filter(_.isDefined).map(_.get)
Однако программе необходимо выполнить итерацию по коллекции три раза. Можно ли реализовать эту функцию более эффективно? В частности, возможно ли это сделать методом collect ?