Guava - Lister
1. Oversigt
I denne vejledning illustrerer vi de mest almindelige og nyttige måder at arbejde med lister ved hjælp af Guava-biblioteket.
Lad os starte simpelt - og se på bare skabe et nyt ArrayListved hjælp af Guava-syntaks - uden ny:
Liste navne = Lists.newArrayList ("John", "Adam", "Jane");
2. Omvendt a Liste
Lad os først omvendt a Liste ved brug af Lists.reverse () som i følgende eksempel:
@Test offentlig ugyldig nårReverseList_thenReversed () {List names = Lists.newArrayList ("John", "Adam", "Jane"); Omvendt liste = Lists.reverse (navne); assertThat (omvendt, indeholder ("Jane", "Adam", "John")); }
3. Generer KarakterListe fra en Snor
Lad os nu se, hvordan man opdeler en streng i en liste over Tegn.
I det følgende eksempel bruger vi Lists.CharactersOf () API til at oprette en KarakterListe fra en Snor"John":
@Test offentlig ugyldig nårCreateCharacterListFromString_thenCreated () {List tegn = Lists.charactersOf ("John"); assertEquals (4, chars.size ()); assertThat (tegn, indeholder ('J', 'o', 'h', 'n')); }
4. Skillevæg a Liste
Næste - Lad os se, hvordan man gør det skillevæg aListe.
I det følgende eksempel bruger vi Lists.partition () for at få fortløbende underlister hver af størrelse to:
@Test offentligt ugyldigt nårPartitionList_thenPartitioned () {List names = Lists.newArrayList ("John", "Jane", "Adam", "Tom", "Viki", "Tyler"); Liste resultat = Lists.partition (navne, 2); assertEquals (3, result.size ()); assertThat (result.get (0), indeholder ("John", "Jane")); assertThat (result.get (1), indeholder ("Adam", "Tom")); assertThat (result.get (2), indeholder ("Viki", "Tyler")); }
5. Fjern duplikater fra Liste
Lad os nu bruge et simpelt trick til at fjerne dubletter fra en Liste.
I det følgende eksempel kopierer vi elementerne til en Sæt og så opretter vi en Liste tilbage ud af de resterende elementer:
@Test offentligt ugyldigt nårRemoveDuplicatesFromList_thenRemoved () {Listetegn = Lists.newArrayList ('h', 'e', 'l', 'l', 'o'); assertEquals (5, chars.size ()); Listeresultat = ImmutableSet.copyOf (tegn) .asList (); assertThat (resultat, indeholder ('h', 'e', 'l', 'o')); }
6. Fjern nulværdier fra Liste
Næste - lad os se, hvordan man gør det fjerne nul værdier fra a Liste.
I det følgende eksempel fjerner vi alle nul værdier ved hjælp af det meget nyttige Iterables.removeIf () API og et predikat leveret af selve biblioteket:
@Test offentlig ugyldigt nårRemoveNullFromList_thenRemoved () {List names = Lists.newArrayList ("John", null, "Adam", null, "Jane"); Iterables.removeIf (names, Predicates.isNull ()); assertEquals (3, names.size ()); assertThat (navne, indeholder ("John", "Adam", "Jane")); }
7. Konverter a Liste til en ImmutableList
Endelig - lad os se, hvordan man opretter en uforanderlig kopi af en Liste - en ImmutableList - bruger ImmutableList.copyOf () API:
@Test offentligt ugyldigt nårCreateImmutableList_thenCreated () {List names = Lists.newArrayList ("John", "Adam", "Jane"); names.add ("Tom"); assertEquals (4, names.size ()); ImmutableList immutable = ImmutableList.copyOf (navne); assertThat (uforanderlig, indeholder ("John", "Adam", "Jane", "Tom")); }
8. Konklusion
Og her er vi - en hurtig tutorial, der gennemgår de fleste af de nyttige ting, du kan gøre med lister ved hjælp af Guava.
For at grave i listerne yderligere, se Predikater og funktioner-guiden til lister såvel som den grundige guide til Tilslutning og opdeling af lister i Guava.
Implementeringen af alle disse eksempler og kodestykker kan findes i mit Guava github-projekt - dette er et Eclipse-baseret projekt, så det skal være let at importere og køre som det er.