Guava - Lister

1. Oversikt

I denne opplæringen - vil vi illustrere de vanligste og mest nyttige måtene å jobbe med lister ved hjelp av Guava-biblioteket.

La oss starte enkelt - og se på bare skape et nytt ArrayListbruker Guava syntaks - uten ny:

Listenavn = Lists.newArrayList ("John", "Adam", "Jane");

2. Reversere a Liste

Først, la oss reversere a Liste ved hjelp av Lists.reverse () som i følgende eksempel:

@Test offentlig ugyldig nårReverseList_thenReversed () {List names = Lists.newArrayList ("John", "Adam", "Jane"); Omvendt liste = Lister.omvendt (navn); assertThat (reversert, inneholder ("Jane", "Adam", "John")); }

3. Generer KarakterListe fra en String

La oss nå se hvordan vi kan dele en streng fra hverandre i en liste over Tegn.

I det følgende eksemplet - bruker vi Lister.CharactersOf () API for å opprette en KarakterListe fra en String“John”:

@Test offentlig ugyldig nårCreateCharacterListFromString_thenCreated () {List tegn = Lists.charactersOf ("John"); assertEquals (4, chars.size ()); assertThat (tegn, inneholder ('J', 'o', 'h', 'n')); }

4. Skillevegg a Liste

Neste - La oss se hvordan partisjon aListe.

I det følgende eksemplet - bruker vi Lists.partition () for å få sammenhengende underlister hver av størrelse to:

@Test offentlig ugyldig nårPartitionList_thenPartitioned () {List names = Lists.newArrayList ("John", "Jane", "Adam", "Tom", "Viki", "Tyler"); Liste resultat = Lister.partisjon (navn, 2); assertEquals (3, result.size ()); assertThat (result.get (0), inneholder ("John", "Jane")); assertThat (result.get (1), inneholder ("Adam", "Tom")); assertThat (result.get (2), inneholder ("Viki", "Tyler")); }

5. Fjern duplikater fra Liste

Nå - la oss bruke et enkelt triks for å fjerne duplikater fra en Liste.

I det følgende eksemplet - kopierer vi elementene til en Sett og så lager vi en Liste tilbake fra de gjenværende elementene:

@Test offentlig ugyldig nårRemoveDuplicatesFromList_thenRemoved () {List tegn = Lists.newArrayList ('h', 'e', ​​'l', 'l', 'o'); assertEquals (5, chars.size ()); Liste resultat = ImmutableSet.copyOf (tegn) .asList (); assertThat (resultat, inneholder ('h', 'e', ​​'l', 'o')); }

6. Fjern nullverdier fra Liste

Neste - la oss se hvordan fjerne null verdier fra en Liste.

I det følgende eksemplet - fjerner vi alt null verdier ved hjelp av det svært nyttige Iterables.removeIf () API og et predikat levert av selve biblioteket:

@Test offentlig ugyldig nårRemoveNullFromList_thenRemoved () {List names = Lists.newArrayList ("John", null, "Adam", null, "Jane"); Iterables.removeIf (names, Predicates.isNull ()); assertEquals (3, names.size ()); assertThat (navn, inneholder ("John", "Adam", "Jane")); }

7. Konverter a Liste til en ImmutableList

Til slutt - la oss se hvordan du lager en uforanderlig kopi av en Liste - en ImmutableList - bruker ImmutableList.copyOf () API:

@Test offentlig ugyldig nårCreateImmutableList_thenCreated () {List names = Lists.newArrayList ("John", "Adam", "Jane"); names.add ("Tom"); assertEquals (4, names.size ()); ImmutableList immutable = ImmutableList.copyOf (navn); assertThat (uforanderlig, inneholder ("John", "Adam", "Jane", "Tom")); }

8. Konklusjon

Og her er vi - en rask opplæring som går over de fleste nyttige ting du kan gjøre med lister ved hjelp av Guava.

For å grave i lister enda lenger, sjekk ut Predikater og funksjoner-guiden til lister, samt den grundige guiden til å bli med og dele lister i Guava.

Implementeringen av alle disse eksemplene og kodebiter kan du finne i mitt Guava github-prosjekt - dette er et formørkelsesbasert prosjekt, så det skal være enkelt å importere og kjøre som det er.