2012-12-07 9 views
25

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?

+0

Od kiedy obowiązuje Scala pseudokod? :) – Natix

+0

@Natix Myślę, że Scala jest rzeczywiście bardziej elastyczny pod względem składni niż pseudokod :) – toniedzwiedz

Odpowiedz

7

Nie sądzę, istnieje bezpośrednie tłumaczenie, ale transform następnie concat powinny być równoważne.

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.

Powiązane problemy