Guava es un conjunto de bibliotecas principales de Google que incluye nuevos tipos de colección. Por ejemplo, tenemos multimap y multisets, colecciones inmutables, una biblioteca de gráficos y utilidades para la concurrencia. Es utilizado por muchas empresas. En este artículo, vamos a ver cómo usar los recopiladores de Guava para recopilar flujos en colecciones inmutables en Java. Para usar guayaba, necesitamos agregar la dependencia de Maven. De lo contrario, tenemos que agregar esta biblioteca externamente a nuestro proyecto.
Ilustración:
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>22.0</version> </dependency>
Repasemos los mismos conceptos importantes que involucran métodos que se han involucrado antes antes de pasar a la implementación por motivos de claridad y comprensión. El concepto de flujos juega un papel importante aquí que se introdujo en Java 8. Un flujo representa una secuencia de elementos y admite diferentes tipos de operaciones para realizar cálculos u operaciones masivas en esos elementos.
- Una secuencia no es una estructura de datos, sino que recibe información de las colecciones, arrays o canales de E/S.
- Los flujos no cambian la estructura de datos original, solo proporcionan el resultado según los métodos canalizados.
- Cada operación intermedia se ejecuta con pereza y devuelve una secuencia como resultado, por lo tanto, se pueden canalizar varias operaciones intermedias. Las operaciones de terminal marcan el final de la secuencia y devuelven el resultado.
Sintaxis:
static IntStream range (int start, int end)
Tipo de retorno : una secuencia de enteros
Descripción : este método se utiliza para devolver un orden secuencial de Integer Stream
Stream intStream boxed()
Tipo de retorno : corriente
Descripción : este método devuelve Stream que consta de los elementos de este flujo
Ejemplo 1:
Java
// Java Program to illustrate Use Guava's Collectors // for Collecting Streams to Immutable Collections // Importing utility classes from java.util package // Importing guava Library import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; // Main class public class App { // Main driver method public static void main(String[] args) { // Creating a stream of Integers from 0 to 9 // by using boxed method converting that stream // into stream of elements List<Integer> list = IntStream.range(0, 9).boxed().collect( ImmutableList.toImmutableList()); // printing the list System.out.println(list); } }
Producción:
[0, 1, 2, 3, 4, 5, 6, 7, 8]
Nota: En el resultado anterior hemos impreso una lista inmutable de enteros. Si intentamos modificar la lista, arrojará una UnsupportedOperationException .
Ejemplo 2:
Java
// Java Program to illustrate Use Guava's Collectors // for Collecting Streams to Immutable Collections // Where UnsupportedOperationException is thrown // Importing utility classes from java.util package // Importing Guava library import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; // Main class public class App { // Main driver method public static void main(String[] args) { // Creating a stream of Integers from 0 to 9 // by using boxed method converting that stream // into stream of elements List<Integer> list = IntStream.range(0, 9).boxed().collect( ImmutableList.toImmutableList()); // Adding more elements to immutatble list // Note: Trying to add list.add(12); list.add(13); list.add(14); // Print and display the List System.out.println(list); } }
Producción:
Exception in thread "main" java.lang.UnsupportedOperationException at com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:220) at james.App.main(App.java:15)
Publicación traducida automáticamente
Artículo escrito por aniketdalal126 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA