Kuchárska kniha zbierok Guava
1. Úvod
Tento článok o kuchárskej knihe je usporiadaný do malé a sústredené recepty a úryvky kódu na používanie zbierok v štýle Guava.
Formát je z rastúci zoznam príkladov kódov nie je potrebné žiadne ďalšie vysvetlenie - má to umožniť ľahký prístup k bežným používaniu API počas vývoja.
2. Recepty
zostupne Zoznam do zoznamu
– Poznámka: toto je riešenie pre nekovariantné generované kolekcie v Jave jednoduchšia alternatíva bez Guava - zahŕňajúca 2 cast operácie pridanie iterácie do zbierky podľa vlastného pravidla zhody skontrolujte, či kolekcia obsahuje prvky alternatívne riešenie pomocou vyhľadávania alternatívne riešenie použiteľné iba pre súpravy NoSuchElementException na Iterables.find keď sa nič nenájde - toto hodí the NoSuchElementException výnimkou: – Riešenie: existuje preťažený Nájsť metóda , ktorý berie ako argument predvolenú návratovú hodnotu a dá sa s ním vyvolať nulový pre požadované správanie: odstrániť všetky nulové hodnoty zo zbierky vytvorte priamo nemenný zoznam / zostavu / mapu vytvorte nemenný Zoznam / Súbor / Mapu zo štandardnej zbierky alternatívne riešenie pomocou staviteľov Guava je komplexná a fantasticky užitočná knižnica - tu je niekoľko ďalších rozhraní API zahrnutých vo forme kuchárskej knihy: Užite si to. Ako som už spomenul na začiatku, s tým experimentujem iný formát - kuchárska kniha - pokúsiť sa zhromaždiť jednoduché bežné úlohy používania zbierok Guava na jednom mieste. Tento formát sa zameriava na jednoduchosť a rýchlosť, tak to má väčšina receptov žiadne ďalšie vysvetlenie okrem samotného príkladu kódu. Nakoniec - pozerám sa na to ako živý dokument - Budem stále pridávať recepty a príklady, keď na ne narazím. Pokojne uveďte viac v komentároch a budem sa usilovať o ich začlenenie do kuchárskej knihy. Implementácia všetkých týchto príkladov a útržkov kódu nájdete na GitHub - toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.trieda CastFunction implementuje funkciu {@Override public final T apply (final F from) {return (T) from; }} Zoznam originalList = Lists.newArrayList (); Zoznam theList = Lists.transform (originalList, new CastFunction ());
Zoznam originalList = Lists.newArrayList (); List theList = (Zoznam) (Zoznam) originalList;
Iterovateľný iter = Lists.newArrayList (); Zberač zbierok = Lists.newArrayList (); Iterables.addAll (kolektor, iter);
Iterable theCollection = Lists.newArrayList ("a", "bc", "def"); boolean contains = Iterables.any (theCollection, new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1;}}); assertTrue (obsahuje);
Iterable theCollection = Sets.newHashSet ("a", "bc", "def"); boolean contains = Iterables.find (theCollection, new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1;}})! = null; assertTrue (obsahuje);
Set theCollection = Sets.newHashSet ("a", "bc", "def"); boolean obsahuje =! Sets.filter (theCollection, new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1;}}). isEmpty (); assertTrue (obsahuje);
Iterable theCollection = Sets.newHashSet ("abcd", "efgh", "ijkl"); Predicate inputOfLengthOne = new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1; }}; Nájdený reťazec = Iterables.find (theCollection, inputOfLengthOne);
java.util.NoSuchElementException na adrese com.google.common.collect.AbstractIterator.next (AbstractIterator.java:154) na adrese com.google.common.collect.Iterators.find (Iterators.java:712) na adrese com.google.common. collect.Iterables.find (Iterables.java:643)
Nájdený reťazec = Iterables.find (theCollection, inputOfLengthOne, null);
Zoznam hodnôt = Lists.newArrayList ("a", null, "b", "c"); Iterable withoutNulls = Iterables.filter (values, Predicates.notNull ());
ImmutableList immutableList = ImmutableList.of ("a", "b", "c"); ImmutableSet immutableSet = ImmutableSet.of ("a", "b", "c"); ImmutableMap imuttableMap = ImmutableMap.of ("k1", "v1", "k2", "v2", "k3", "v3");
Zoznam muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList.copyOf (muttableList); Set muttableSet = Sets.newHashSet (); ImmutableSet immutableSet = ImmutableSet.copyOf (muttableSet); Map muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap.copyOf (muttableMap);
Zoznam muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList. builder (). addAll (muttableList) .build (); Set muttableSet = Sets.newHashSet (); ImmutableSet immutableSet = ImmutableSet. builder (). addAll (muttableSet) .build (); Map muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap. builder (). putAll (muttableMap) .build ();
3. Viac kuchárskych kníh Guava
Objednávka kuchárskej knihy Guava
Guava funkčná kuchárska kniha
4. Ideme vpred