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.


$config[zx-auto] not found$config[zx-overlay] not found