Guava Collections Cookbook
1. Introduksjon
Denne kokebokartikkelen er organisert i små og fokuserte oppskrifter og kodebiter for bruk av Guava-stilkolleksjoner.
Formatet er det av en voksende liste over kodeeksempler uten ytterligere forklaring nødvendig - det er ment å holde vanlige bruksområder for API lett tilgjengelige under utvikling.
2. Oppskriftene
nedkast en liste til en liste
– Merk: dette er en løsning for ikke-kovariant genererte samlinger i Java enklere alternativ uten Guava - med to rollebesetninger legge til en iterabel i en samling sjekk om samlingen inneholder element (er) i henhold til en tilpasset samsvarende regel alternativ løsning ved hjelp av søk alternativ løsning bare anvendelig for sett NoSuchElementException på Iterables.find når ingenting blir funnet - dette vil kaste de NoSuchElementException unntak: – løsning: det er en overbelastet finne metode som tar standard returverdi som argument og kan kalles med null for ønsket oppførsel: fjern alle nullverdier fra en samling lage uforanderlig liste / sett / kart direkte lage uforanderlig liste / sett / kart fra en standard samling alternativ løsning ved hjelp av byggherrer Guava er et omfattende og fantastisk nyttig bibliotek - her er noen flere API-er dekket i kokebokform: Nyt. Som jeg nevnte i begynnelsen, eksperimenterer jeg med dette annet format - kokeboken - å prøve å samle enkle vanlige oppgaver for å bruke Guava Collections på ett sted. Fokuset i dette formatet er enkelhet og hastighet, så de fleste oppskrifter har ingen ytterligere forklaring enn selve kodeeksemplet. Til slutt - jeg ser på dette som et levende dokument - Jeg kommer til å fortsette å legge til oppskrifter og eksempler når jeg støter på dem. Gi gjerne mer i kommentarene, så ser jeg ut til å innlemme dem i kokeboken. Implementeringen av alle disse eksemplene og kodebiter kan du finne på GitHub - dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre som det er.klasse CastFunction implementerer Funksjon {@Override offentlig finale T gjelder (endelig F fra) {retur (T) fra; }} Liste originalList = Lists.newArrayList (); Liste theList = Lists.transform (originalList, ny CastFunction ());
Liste originalList = Lists.newArrayList (); List theList = (List) (List) originalList;
Iterabel iter = Lists.newArrayList (); Samlersamler = Lists.newArrayList (); Iterables.addAll (samler, iter);
Iterabel theCollection = Lists.newArrayList ("a", "bc", "def"); boolsk inneholder = Iterables.any (theCollection, new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1;}}); assertTrue (inneholder);
Iterabel theCollection = Sets.newHashSet ("a", "bc", "def"); boolsk inneholder = Iterables.find (theCollection, new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1;}})! = null; assertTrue (inneholder);
Sett theCollection = Sets.newHashSet ("a", "bc", "def"); boolsk inneholder =! Sets.filter (theCollection, new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1;}}). isEmpty (); assertTrue (inneholder);
Iterabel theCollection = Sets.newHashSet ("abcd", "efgh", "ijkl"); Predicate inputOfLengthOne = new Predicate () {@Override public boolean apply (final String input) {return input.length () == 1; }}; Streng funnet = Iterables.find (theCollection, inputOfLengthOne);
java.util.NoSuchElementException på com.google.common.collect.AbstractIterator.next (AbstractIterator.java:154) på com.google.common.collect.Iterators.find (Iterators.java:712) på com.google.common. collect.Iterables.find (Iterables.java:643)
Streng funnet = Iterables.find (theCollection, inputOfLengthOne, null);
Listeverdier = Lists.newArrayList ("a", null, "b", "c"); Iterabel utenNulls = Iterables.filter (verdier, 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); Map muttableMap = Maps.newHashMap (); ImmutableMap imuttableMap = ImmutableMap.copyOf (muttableMap);
List muttableList = Lists.newArrayList (); ImmutableList immutableList = ImmutableList. byggmester (). 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. Flere Guava kokebøker
Guava bestilling av kokebok
Guava funksjonell kokebok
4. Går fremover