Guave - Listen

1. Übersicht

In diesem Tutorial werden die häufigsten und nützlichsten Methoden zum Arbeiten mit Listen mithilfe der Guava-Bibliothek erläutert .

Beginnen wir einfach - und schauen wir uns an, wie Sie einfach eine neue ArrayList mit Guava-Syntax erstellen - ohne neue :

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

2. Kehren Sie eine Liste um

Lassen Sie uns zunächst eine Liste mit Lists.reverse () wie im folgenden Beispiel umkehren :

@Test public void whenReverseList_thenReversed() { List names = Lists.newArrayList("John", "Adam", "Jane"); List reversed = Lists.reverse(names); assertThat(reversed, contains("Jane", "Adam", "John")); }

Generieren 3. Zeichenliste aus einem String

Nun wollen wir sehen, wie man einen String in eine Liste von Zeichen zerlegt .

Im folgende Beispiel - wir verwenden , um die Lists.CharactersOf () API zur Schaffung einer Zeichenliste aus einem String „John“ :

@Test public void whenCreateCharacterListFromString_thenCreated() { List chars = Lists.charactersOf("John"); assertEquals(4, chars.size()); assertThat(chars, contains('J', 'o', 'h', 'n')); }

4. Partitionieren Sie eine Liste

Weiter - Mal sehen, wie man eine Liste partitioniert .

Im folgenden Beispiel verwenden wir Lists.partition () , um aufeinanderfolgende Unterlisten der Größe zwei abzurufen :

@Test public void whenPartitionList_thenPartitioned(){ List names = Lists.newArrayList("John","Jane","Adam","Tom","Viki","Tyler"); List
    
      result = Lists.partition(names, 2); assertEquals(3, result.size()); assertThat(result.get(0), contains("John", "Jane")); assertThat(result.get(1), contains("Adam", "Tom")); assertThat(result.get(2), contains("Viki", "Tyler")); }
    

5. Entfernen Sie Duplikate aus der Liste

Verwenden Sie jetzt einen einfachen Trick, um Duplikate aus einer Liste zu entfernen .

Im folgenden Beispiel kopieren wir die Elemente in ein Set und erstellen dann eine Liste aus den verbleibenden Elementen:

@Test public void whenRemoveDuplicatesFromList_thenRemoved() { List chars = Lists.newArrayList('h','e','l','l','o'); assertEquals(5, chars.size()); List result = ImmutableSet.copyOf(chars).asList(); assertThat(result, contains('h', 'e', 'l', 'o')); }

6. Entfernen Sie Nullwerte aus der Liste

Weiter - mal sehen , wie entfernen null Werte aus einer Liste .

Im folgenden Beispiel entfernen wir alle Nullwerte mithilfe der äußerst nützlichen Iterables.removeIf () -API und eines von der Bibliothek selbst bereitgestellten Prädikats:

@Test public void whenRemoveNullFromList_thenRemoved() { List names = Lists.newArrayList("John", null, "Adam", null, "Jane"); Iterables.removeIf(names, Predicates.isNull()); assertEquals(3, names.size()); assertThat(names, contains("John", "Adam", "Jane")); }

7. Konvertieren Sie eine Liste in eine ImmutableList

Lassen Sie uns abschließend sehen, wie Sie mit der API ImmutableList.copyOf () eine unveränderliche Kopie einer Liste - einer ImmutableList - erstellen :

@Test public void whenCreateImmutableList_thenCreated() { List names = Lists.newArrayList("John", "Adam", "Jane"); names.add("Tom"); assertEquals(4, names.size()); ImmutableList immutable = ImmutableList.copyOf(names); assertThat(immutable, contains("John", "Adam", "Jane", "Tom")); }

8. Fazit

Und hier sind wir - ein kurzes Tutorial, das die meisten nützlichen Dinge behandelt, die Sie mit Listen mit Guava tun können.

Weitere Informationen zu Listen finden Sie im Handbuch Prädikate und Funktionen zu Listen sowie im ausführlichen Handbuch zum Verbinden und Teilen von Listen in Guave.

Die Implementierung all dieser Beispiele und Codefragmente finden Sie in meinem Guava-Github-Projekt - dies ist ein Eclipse-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.