Guava - lijsten

1. Overzicht

In deze tutorial zullen we de meest voorkomende en nuttige manieren illustreren om werken met lijsten met behulp van de Guava-bibliotheek.

Laten we eenvoudig beginnen - en even kijken het creëren van een nieuw ArrayListmet behulp van Guava-syntaxis - zonder nieuw:

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

2. Keer een Lijst

Laten we eerst omkeren a Lijst gebruik makend van Lists.reverse () zoals in het volgende voorbeeld:

@Test public void whenReverseList_thenReversed () {List names = Lists.newArrayList ("John", "Adam", "Jane"); Lijst omgekeerd = Lists.reverse (namen); assertThat (omgekeerd, bevat ("Jane", "Adam", "John")); }

3. Genereer KarakterLijst van een Draad

Laten we nu eens kijken hoe we een String kunnen opsplitsen in een lijst met Tekens.

In het volgende voorbeeld gebruiken we de Lists.CharactersOf () API om een KarakterLijst van een Draad"John":

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

4. Partitie een Lijst

Volgende - Laten we eens kijken hoe partitie aLijst.

In het volgende voorbeeld gebruiken we Lists.partition () om opeenvolgende sublijsten van elk formaat twee te krijgen:

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

5. Verwijder duplicaten van Lijst

Laten we nu een eenvoudige truc gebruiken om duplicaten te verwijderen uit een Lijst.

In het volgende voorbeeld kopiëren we de elementen naar een Set en dan maken we een Lijst terug uit de resterende elementen:

@Test openbare leegte whenRemoveDuplicatesFromList_thenRemoved () {List chars = Lists.newArrayList ('h', 'e', ​​'l', 'l', 'o'); assertEquals (5, chars.size ()); Lijstresultaat = ImmutableSet.copyOf (chars) .asList (); assertThat (resultaat, bevat ('h', 'e', ​​'l', 'o')); }

6. Null-waarden verwijderen uit Lijst

Volgende - laten we eens kijken hoe verwijderen nul waarden van a Lijst.

In het volgende voorbeeld verwijderen we alles nul waarden met behulp van de zeer bruikbare Iterables.removeIf () API en een predikaat geleverd door de bibliotheek zelf:

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

7. Converteer een Lijst aan een Onveranderlijke lijst

Ten slotte - laten we eens kijken hoe we een onveranderlijke kopie van een Lijst - een Onveranderlijke lijst - de ... gebruiken ImmutableList.copyOf () API:

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

8. Conclusie

En hier zijn we dan - een korte tutorial die de meeste nuttige dingen behandelt die je kunt doen met lijsten met Guava.

Om nog verder in Lijsten te duiken, bekijk de Predicaten en Functies-gids voor lijsten, evenals de uitgebreide gids voor het samenvoegen en splitsen van lijsten in Guava.

De implementatie van al deze voorbeelden en codefragmenten is te vinden in mijn Guava github-project - dit is een op Eclipse gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.