Przeglądając https://github.com/google/guava/wiki/FunctionalExplained Widzę operacje takie jak transform, które przekształcą listę, ale zachowają taką samą moc. Jak mogę przeprowadzić transformację, która powoduje inną liczność? na przykład (Pseudokod) List(1,2,3).transform(i => List(i, i))
->List(1,1,2,2,3,3)
Jaki jest odpowiednik mapy mieszkalnej Scali w Guava?
25
A
Odpowiedz
41
Od wersji 13 jest transformAndConcat
na FluentIterable
.
7
Nie sądzę, istnieje bezpośrednie tłumaczenie, ale transform
następnie concat
powinny być równoważne.
3
W Eclipse Collections, collect()
jest odpowiednikiem Scala map()
i flatCollect()
jest odpowiednikiem Scala flatMap()
.
Oto przykład użycia flatCollect with Java 8 Lambdas.
Uwaga: Jestem uczestnikiem kolekcji Eclipse.
2
Należy jednak zwrócić uwagę na jedną rzecz: jednak metody map Scali zwracają nowe kolekcje, a metoda transform() w Guava zwraca przekształcony widok oryginalnej kolekcji. To bardzo subtelna różnica. Musisz zdecydować, czy "Widok na oryginalną kolekcję" jest odpowiedni dla twojego kontekstu.
Od kiedy obowiązuje Scala pseudokod? :) – Natix
@Natix Myślę, że Scala jest rzeczywiście bardziej elastyczny pod względem składni niż pseudokod :) – toniedzwiedz