Kuharica zbirki Guava
1. Uvod
Ovaj je članak o kuharici organiziran u mali i fokusirani recepti i isječci koda za korištenje kolekcija u stilu Guava.
Format je rastući popis primjera koda bez potrebnog dodatnog objašnjenja - namijenjen je lakom pristupu uobičajenim oblicima API-ja tijekom razvoja.
2. Recepti
spustio Popis na Popis
– Bilješka: ovo je rješenje za nekovarijantno generirane zbirke u Javi jednostavnija alternativa bez Guave - uključuje 2 operacije lijevanja dodavanje iterablea u zbirku provjerite sadrži li zbirka elemente prema prilagođenom pravilu podudaranja alternativno rješenje pomoću pretraživanja alternativno rješenje primjenjivo samo na Setove NoSuchElementException na Interables.nađi kad se ništa ne nađe - ovo će baciti the NoSuchElementException iznimka: – riješenje: tamo je preopterećen pronaći metoda koja uzima zadanu povratnu vrijednost kao argument i može se pozvati s null za željeno ponašanje: ukloni sve null vrijednosti iz zbirke izravno izradite nepromjenjivi Popis / Postavljanje / Mapu stvoriti nepromjenjivi Popis / Set / Mapu iz standardne kolekcije alternativno rješenje pomoću graditelja Guava je sveobuhvatna i fantastično korisna knjižnica - evo još nekoliko API-ja obuhvaćenih kuharicom: Uživati. Kao što sam spomenuo na početku, eksperimentiram s tim drugačiji format - kuharica - pokušati skupiti jednostavne uobičajene zadatke korištenja kolekcija Guava na jednom mjestu. Fokus ovog formata je jednostavnost i brzina, tako da većina recepata ima nikakvo dodatno objašnjenje osim samog primjera koda. Napokon - na ovo gledam kao na živi dokument - Nastavit ću dodavati recepte i primjere dok naletim na njih. Slobodno navedite više u komentarima, a ja ću ih uklopiti u kuharicu. Implementacija svih ovih primjera i isječaka koda možete pronaći na GitHubu - ovo je projekt zasnovan na Mavenu, pa bi ga trebalo biti lako uvesti i pokrenuti kakav jest.klasa CastFunction implementira funkciju {@Override public final T apply (final F from) {return (T) from; }} Popis originalList = Lists.newArrayList (); Popis theList = Lists.transform (originalList, nova CastFunction ());
Popis originalList = Lists.newArrayList (); Popis theList = (Popis) (Popis) originalList;
Iterable iter = Lists.newArrayList (); Kolekcionar kolekcije = Lists.newArrayList (); Iterables.addAll (sakupljač, iter);
Iterable theCollection = Lists.newArrayList ("a", "bc", "def"); boolean sadrži = Iterables.any (theCollection, novi Predikat () {@Preuzmi javnu logičku primjenu (konačni unos niza) {return input.length () == 1;}}); assertTrue (sadrži);
Iterable theCollection = Sets.newHashSet ("a", "bc", "def"); boolean sadrži = Iterables.find (theCollection, novi Predikat () {@Override javna logička primjena (konačni unos niza) {return input.length () == 1;}})! = null; assertTrue (sadrži);
Postavite theCollection = Sets.newHashSet ("a", "bc", "def"); boolean sadrži =! Sets.filter (theCollection, novi Predikat () {@Override javna logička primjena (konačni unos niza) {return input.length () == 1;}}). isEmpty (); assertTrue (sadrži);
Iterable theCollection = Sets.newHashSet ("abcd", "efgh", "ijkl"); Predikat inputOfLengthOne = novi predikat () {@Override javna logička primjena (konačni unos niza) {return input.length () == 1; }}; Pronađen niz = Iterables.find (theCollection, inputOfLengthOne);
java.util.NoSuchElementException na com.google.common.collect.AbstractIterator.next (AbstractIterator.java:154) na com.google.common.collect.Iterators.find (Iterators.java:712) na com.google.common. collect.Iterables.find (Iterables.java:643)
Pronađen niz = Iterables.find (theCollection, inputOfLengthOne, null);
Vrijednosti popisa = Lists.newArrayList ("a", null, "b", "c"); Iterable withoutNulls = Iterables.filter (vrijednosti, predikati.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");
Popis muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList.copyOf (muttableList); Postavi muttableSet = Sets.newHashSet (); ImmutableSet immutableSet = ImmutableSet.copyOf (muttableSet); Karta muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap.copyOf (muttableMap);
Popis muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList. graditelj (). addAll (muttableList) .build (); Postavi muttableSet = Sets.newHashSet (); ImmutableSet immutableSet = ImmutableSet. graditelj (). addAll (muttableSet) .build (); Karta muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap. graditelj (). putAll (muttableMap) .build ();
3. Više Guava kuharica
Kuharica za naručivanje Guave
Funkcionalna kuharica Guava
4. Naprijed