Guava - Popisi

1. Pregled

U ovom uputstvu ilustrirat ćemo najčešće i najkorisnije načine za raditi s Popisima koristeći knjižnicu Guava.

Krenimo jednostavno - i pogledajte samo stvaranje novog ArrayListkoristeći sintaksu Guava - bez novi:

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

2. Obrnuti a Popis

Prvo, krenimo obrnuti a Popis koristeći Lists.reverse () kao u sljedećem primjeru:

@Test public void whenReverseList_thenReversed () {Imena popisa = Lists.newArrayList ("John", "Adam", "Jane"); Obrnuti popis = Lists.reverse (imena); assertThat (obrnuto, sadrži ("Jane", "Adam", "John")); }

3. Generiraj LikPopis od Niz

Sada - da vidimo kako razdvojiti niz na popis Likovi.

U sljedećem primjeru - koristimo Liste.CharactersOf () API za stvaranje a LikPopis od Niz"Ivan":

@Test public void whenCreateCharacterListFromString_thenCreated () {Popis znakova = Lists.charactersOf ("John"); assertEquals (4, znakovi.size ()); assertThat (znakovi, sadrže ('J', 'o', 'h', 'n')); }

4. Pregrada a Popis

Dalje - Pogledajmo kako pregrada aPopis.

U sljedećem primjeru - koristimo Popisi.partition () da biste dobili uzastopne podspiske svake veličine dvije:

@Test public void whenPartitionList_thenPartitioned () {Imena popisa = Lists.newArrayList ("John", "Jane", "Adam", "Tom", "Viki", "Tyler"); Popis rezultat = Lists.partition (imena, 2); assertEquals (3, result.size ()); assertThat (result.get (0), sadrži ("John", "Jane")); assertThat (result.get (1), sadrži ("Adam", "Tom")); assertThat (result.get (2), sadrži ("Viki", "Tyler")); }

5. Uklonite duplikate iz Popis

A sada - poslužimo se jednostavnim trikom za uklanjanje duplikata iz a Popis.

U sljedećem primjeru - kopiramo elemente u Postavi a zatim stvorimo a Popis natrag iz preostalih elemenata:

@Test public void whenRemoveDuplicatesFromList_thenRemoved () {Popis znakova = Lists.newArrayList ('h', 'e', ​​'l', 'l', 'o'); assertEquals (5, znakovi.size ()); Rezultat popisa = ImmutableSet.copyOf (znakovi) .asList (); assertThat (rezultat, sadrži ('h', 'e', ​​'l', 'o')); }

6. Uklonite null vrijednosti iz Popis

Dalje - da vidimo kako ukloniti null vrijednosti iz a Popis.

U sljedećem primjeru - uklanjamo sve null vrijednosti koristeći vrlo korisne Iterables.removeIf () API i predikat koji osigurava sama knjižnica:

@Test public void whenRemoveNullFromList_thenRemoved () {Imena popisa = Lists.newArrayList ("John", null, "Adam", null, "Jane"); Iterables.removeIf (imena, predikati.isNull ()); assertEquals (3, names.size ()); assertThat (imena, sadrži ("John", "Adam", "Jane")); }

7. Pretvori a Popis do an Nepromjenjiva lista

Napokon - pogledajmo kako stvoriti nepromjenjivu kopiju Popis - an Nepromjenjiva lista - koristiti ImmutableList.copyOf () API:

@Test public void whenCreateImmutableList_thenCreated () {Imena popisa = Lists.newArrayList ("John", "Adam", "Jane"); names.add ("Tom"); assertEquals (4, names.size ()); ImmutableList immutable = ImmutableList.copyOf (imena); assertThat (nepromjenjivo, sadrži ("John", "Adam", "Jane", "Tom")); }

8. Zaključak

I tu smo - brzi vodič koji preispituje većinu korisnih stvari koje možete učiniti s Popisima pomoću Guave.

Da biste još više ušli u popise, pogledajte vodič za predikate i funkcije za popise, kao i detaljni vodič za Spajanje i dijeljenje popisa u Guavi.

Implementacija svih ovih primjera i isječaka koda možete pronaći u mom projektu gvaub-a Guava - ovo je projekt zasnovan na Eclipseu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest.