Guava gyűjtemények szakácskönyve
1. Bemutatkozás
Ez a szakácskönyv-cikk a következőkre van rendezve apró és célzott receptek és kódrészletek a guava stílusú gyűjtemények használatához.
A formátum a a kódpéldák egyre növekvő listája anélkül, hogy további magyarázatra lenne szükség - célja, hogy az API közös használatát könnyen elérhesse a fejlesztés során.
2. A receptek
egy listát lecsökkent egy listára
– jegyzet: ez a megoldás a nem kovariáns generált gyűjtemények számára a Java-ban egyszerűbb alternatíva Guava nélkül - 2 szereplőgárdával iterálást adva egy gyűjteményhez ellenőrizze, hogy a gyűjtemény tartalmaz-e elemeket egy egyedi egyezési szabály szerint alternatív megoldás a keresés segítségével alternatív megoldás csak a Készletekre vonatkozik NoSuchElementException tovább Iterable.find amikor semmit sem találnak - ez dobni fog a NoSuchElementException kivétel: – megoldás: van egy túlterhelt megtalálja módszer amely az alapértelmezett visszatérési értéket veszi fel argumentumként, és ezzel meghívható nulla a kívánt viselkedéshez: távolítsa el az összes null értéket a gyűjteményből közvetlenül hozhat létre változhatatlan listát / halmazt / térképet hozzon létre változhatatlan listát / halmazt / térképet egy szokásos gyűjteményből alternatív megoldás építők felhasználásával A Guava egy átfogó és fantasztikusan hasznos könyvtár - íme néhány további API a szakácskönyv formában: Élvezd. Mint már az elején említettem, ezzel kísérletezem különböző formátum - a szakácskönyv - megpróbálni egyetlen helyen összegyűjteni a Guava Gyűjtemények használatának egyszerű közös feladatait. Ennek a formátumnak a középpontjában az egyszerűség és a gyorsaság áll, így a legtöbb recept megvan nincs további magyarázat, csak maga a kódpélda. Végül - úgy nézem ezt élő dokumentum - Folyamatosan hozzáadom a recepteket és a példákat, amikor összefutok velük. Nyugodtan adjon meg többet a megjegyzésekben, és megpróbálom beépíteni őket a szakácskönyvbe. Mindezen példák és kódrészletek megvalósítása megtalálható a GitHubon - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.osztály CastFunction megvalósítja a Function {@Orride public final T apply (final F from) {return (T) from; }} List originalList = Lists.newArrayList (); Sorolja fel a theList = Lists.transform (originalList, új CastFunction ());
List originalList = Lists.newArrayList (); Sorolja fel aList = (Lista) (Lista) eredetiListát;
Iterálható iter = Lists.newArrayList (); Gyűjteménygyűjtő = Lists.newArrayList (); Iterables.addAll (gyűjtő, iter);
Iterable theCollection = Lists.newArrayList ("a", "bc", "def"); a logikai elem = Iterables.any (theCollection, new Predicate () {@Orride public boolean Apply (final String input) {return input.length () == 1;}}); assertTrue (tartalmazza);
Iterable theCollection = Sets.newHashSet ("a", "bc", "def"); logikai érték tartalmazza az = Iterables.find (theCollection, new Predicate () {@Orride public boolean Apply (final String input) {return input.length () == 1;}})! = null; assertTrue (tartalmazza);
Állítsa be a TheCollection = Sets.newHashSet ("a", "bc", "def") beállítást; a Boolean =! Sets.filter (theCollection, new Predicate () {@Orride public Boolean Apply (final String input) {return input.length () == 1;}}). isEmpty (); assertTrue (tartalmazza);
Iterable theCollection = Sets.newHashSet ("abcd", "efgh", "ijkl"); Predicate inputOfLengthOne = new Predicate () {@Orride public boolean Apply (utolsó karakterlánc bemenet) {return input.length () == 1; }}; String found = Iterables.find (theCollection, inputOfLengthOne);
java.util.NoSuchElementException a com.google.common.collect.AbstractIterator.next (AbstractIterator.java:154) címen com.google.common.collect.Iterators.find (Iterators.java:712) a com.google.common oldalon. gyűjt.Iterables.find (Iterables.java:643)
String found = Iterables.find (theCollection, inputOfLengthOne, null);
Listaértékek = Lists.newArrayList ("a", null, "b", "c"); Iterable withoutNulls = Iterables.filter (értékek, 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");
List muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList.copyOf (muttableList); Set muttableSet = Sets.newHashSet (); ImmutableSet immutableSet = ImmutableSet.copyOf (muttableSet); Térkép muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap.copyOf (muttableMap);
List muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList. builder (). addAll (muttableList) .build (); Set muttableSet = Sets.newHashSet (); ImmutableSet immutableSet = ImmutableSet. builder (). addAll (muttableSet) .build (); Térkép muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap. builder (). putAll (muttableMap) .build ();
3. További guavai szakácskönyvek
Guava rendelési szakácskönyv
Guava funkcionális szakácskönyv
4. Előre haladás