2011-12-28 10 views
5

Dziwny tytuł, wiem, pozwól mi wyjaśnić.Jak mogę się nauczyć korzystać z kolekcji Java commons?

Jestem programistą, który najlepiej zna C# i JavaScript. Całkowicie wpadłem w te półfunkcjonalne światy do tego stopnia, że ​​większość mojego kodu dotyczy mapowania/zmniejszania/filtrowania zbiorów. W języku C# oznacza to, że używam LINQ niemal wszędzie, w JavaScript to Underscore.js i jQuery.

Obecnie jestem przypisany do trwającego projektu Java i czuję się raczej zduszony. Po prostu nie myślę w kategoriach "tworzenia tablicy, tasowania rzeczy z jednego na drugiego". Mogę (i zrobiłem) tworzyć własne wersje głównej mapy/zmniejszać funkcje, używając anonimowych typów implementujących interfejsy, ale po co ponownie wynajdować koło? Projekt, nad którym obecnie pracuję, ma już commons-collections-3.1.jar i przeglądanie zawartych w nim lekcji, wydaje się, że prawdopodobnie może zrobić wszystko, co chcę i więcej.

Z mojego życia nie mogę się dowiedzieć, jak go właściwie używać. Przeglądanie kilkudziesięciu klas w nich nie jest bardzo pomocne i jedyną rzeczą, którą mogę google do is the api doc, który jest równie pomocny.

Jak używasz go do Map/Select, Filter/Where, Reduce/Aggregate? Czy jest coś, co daje aktualny samouczek dotyczący tej biblioteki?

+0

Książka - Jakarta Commons Książka kucharska http://shop.oreilly.com/product/9780596007065.do?CMP=ILL-4GV796923290 – adatapost

+3

Należy pamiętać, że zbiory Commons są dość stare i nie obsługują generycznych. – BalusC

+0

Ugh, poważnie? Więc nie zamierzam tego użyć. Co to jest pakiet, który daje możliwości przetwarzania kolekcji ORAZ obsługuje generics? –

Odpowiedz

4

(Komentarz jako odpowiedź do celów formatowania.)

Nie tyle, inne niż ograniczony user guide.

To powiedziawszy, nie jestem pewien, gdzie konkretnie masz problemy - filtrowanie i wybieranie jest najczęściej zawijane w functors package i używane przez klasę CollectionUtils.

Chociaż nie szukasz zamiennik, można znaleźć takie rzeczy jak Guava lub Lambda4J nieco bardziej podobny do tego, co masz w zwyczaju (w ramach ograniczeń Javy), i są one nieco mniej gadatliwy.

+0

Ah CollectionUtils jest tym, czego szukałem. To powinno wystarczyć, bym zaczął, ale święty boże, ci faceci muszą wprowadzić swoją dokumentację w naprawdę przydatny stan. Nawet ten link do bezpośredniej klasy, którą chcę, nie zawiera przykładów użycia, po prostu miałem szczęście, że rozpoznałem niektóre z metod sygnatur jako przypominające te, które sam zaimplementowałem. –

+0

@GeorgeMauer Wydaje mi się, że jest to jedna z tych rzeczy, w której jest tak długo, że wszyscy się tego nauczyli przez osmozę;) –

+0

Czuję, że cała Java jest taka :) –

1

@ george-mauer, być może będziesz musiał polegać na artykułach takich jak this lub na książce takiej jak Jakarta Commons Cookbook. Zauważyłem też, że przydaje mi się nauka tworzenia własnych próbek.

+0

Hmm, ten link mówi tylko o anonimowych implementatorach interfejsów i na pewno nie dostanę/przeczytam książki na kilka miesięcy projektu. co za PITA –

Powiązane problemy