1. Información general
En este breve artículo, veremos la conversión entre una matriz y un conjunto , primero usando Java simple, luego Guava y la biblioteca Commons Collections de Apache.
Este artículo es parte de la serie "Java - Back to Basic" aquí en Baeldung.
2. Convertir una matriz en un conjunto
2.1. Usando Java simple
Primero veamos cómo convertir la matriz en un conjunto usando Java simple :
@Test public void givenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(Arrays.asList(sourceArray)); }
Alternativamente, el conjunto se puede crear primero y luego rellenar con los elementos de la matriz:
@Test public void givenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(); Collections.addAll(targetSet, sourceArray); }
2.2. Usando Google Guava
A continuación, veamos la conversión de Guava de una matriz a un conjunto :
@Test public void givenUsingGuava_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = Sets.newHashSet(sourceArray); }
2.3. Usar colecciones de Apache Commons
Finalmente, hagamos la conversión usando la biblioteca Commons Collection de Apache:
@Test public void givenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; Set targetSet = new HashSet(6); CollectionUtils.addAll(targetSet, sourceArray); }
3. Convertir conjunto en matriz
3.1. Usando Java simple
Ahora veamos lo contrario: convertir un conjunto existente en una matriz :
@Test public void givenUsingCoreJava_whenSetConvertedToArray_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceSet.toArray(new Integer[0]); }
Tenga en cuenta que toArray (new T [0]) es la forma preferida de utilizar el método sobre toArray (new T [size]) . Como demuestra Aleksey Shipilëv en su publicación de blog, parece más rápido, más seguro y más limpio.
3.2. Usando guayaba
A continuación, la solución de guayaba:
@Test public void givenUsingGuava_whenSetConvertedToArray_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); int[] targetArray = Ints.toArray(sourceSet); }
Tenga en cuenta que estamos utilizando la API Ints de Guava, por lo que esta solución es específica para el tipo de datos con el que estamos trabajando.
4. Conclusión
La implementación de todos estos ejemplos y fragmentos de código se puede encontrar en Github : este es un proyecto basado en Maven, por lo que debería ser fácil de importar y ejecutar como está.