Просмотр https://github.com/google/guava/wiki/FunctionalExplained Я вижу операции типа transform, который преобразует список, но сохранит ту же мощность. Как я могу выполнить преобразование, которое приводит к другой мощности? например (псевдокод) List(1,2,3).transform(i => List(i, i))
→ List(1,1,2,2,3,3)
Что такое эквивалент Guava Scala flatMap?
Ответ 1
Начиная с версии 13, transformAndConcat
на FluentIterable
.
Ответ 2
Я не думаю, что там есть прямой перевод, но transform
, а затем concat
должен быть эквивалентным.
Ответ 3
В Eclipse Collections, collect()
является эквивалентом Scala map()
и flatCollect()
является эквивалентом Scala flatMap()
.
Вот пример использования flatCollect с Java 8 Lambdas.
Примечание. Я являюсь коммиттером для коллекций Eclipse.
Ответ 4
Обратите внимание на одно: Scala методы карты возвращают новые коллекции, а метод transform() в Guava возвращает преобразованное представление исходной коллекции. Это очень тонкая разница. Вам нужно решить, подходит ли "представление по оригинальной коллекции" для вашего контекста.