Goyave - Listes

1. Vue d'ensemble

Dans ce didacticiel, nous illustrerons les moyens les plus courants et les plus utiles de travailler avec les listes à l'aide de la bibliothèque Guava .

Commençons simplement - et jetons un coup d'œil à la création d'un nouveau ArrayList en utilisant la syntaxe Guava - sans nouveau :

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

2. Inverser une liste

Tout d'abord, inversons une liste en utilisant Lists.reverse () comme dans l'exemple suivant:

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

3. Générer une liste de caractères à partir d'une chaîne

Voyons maintenant comment diviser une chaîne en une liste de caractères .

Dans l'exemple suivant, nous utilisons l' API Lists.CharactersOf () pour créer une liste de caractères à partir d'une chaîne «John» :

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

4. Partitionner une liste

Suivant - Voyons comment partitionner une liste .

Dans l'exemple suivant, nous utilisons Lists.partition () pour obtenir des sous-listes consécutives de taille deux:

@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. Supprimer les doublons de la liste

Maintenant, utilisons une astuce simple pour supprimer les doublons d'une liste .

Dans l'exemple suivant, nous copions les éléments dans un ensemble , puis nous créons une liste à partir des éléments restants:

@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. Supprimer les valeurs nulles de la liste

Ensuite, voyons comment supprimer les valeurs nulles d'une liste .

Dans l'exemple suivant, nous supprimons toutes les valeurs nulles à l'aide de l' API Iterables.removeIf () très utile et d'un prédicat fourni par la bibliothèque elle-même:

@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. Convertir une liste en ImmutableList

Enfin, voyons comment créer une copie immuable d'une liste - une ImmutableList - à l'aide de l' API ImmutableList.copyOf () :

@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. Conclusion

Et nous y sommes - un tutoriel rapide sur la plupart des choses utiles que vous pouvez faire avec les listes en utilisant Guava.

Pour approfondir encore plus les listes, consultez le guide Prédicats et fonctions des listes ainsi que le guide détaillé sur la jointure et le fractionnement de listes dans Guava.

L'implémentation de tous ces exemples et extraits de code peut être trouvée dans mon projet github Guava - il s'agit d'un projet basé sur Eclipse, il devrait donc être facile à importer et à exécuter tel quel.