Convertir Set a List y List a Set


En este artículo, aunque breve, es necesario para conocer las diferentes maneras que tenemos para convertir Set a List y List a Set. En los siguientes ejemplos, veremos como podemos realizarlo a través de Java, Guava y la librería Apache Commons Collection.

Google Guava, es un conjunto de liberías open soruce para Java, desarrolladas por Google. Apache Commons Collections, que fue una mejora introducida desde la versión 1.2 de Java, añade mejoras para las estructuras de datos.

Convertir Set a List

En este ejemplo vamos a partir de una clase Java la cual tiene un método Main para que se pueda ejecutar, y un método privado donde reside la lógica de las transformaciones de Set a List. En los diferentes métodos se cambiará únicamente este método privado.

Con Java

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ConvertToListFromSet{
    public static void main( String[] args ){
    	
       convertToList();
    }

   private void convertToList() {
        System.out.println("Values .....");
    	Set<String> fromSet = Sets.newHashSet("Hi", "Hello", 
        "Bye", "See 
         you");       

        fromSet.forEach(s->System.out.println(s));

        List<String> toList = new ArrayList<>(sourceSet);

        toList.forEach(s->System.out.println(s));
   }
}

Salida:

Values .....
Bye
Hello
Hi
See you

Bye
Hello
Hi
See you

Con Guava.

Para ver el siguiente ejemplo modificaremos únicamente el método privado.

   private void convertToList() {
        System.out.println("Values .....");

    	Set<String> fromSet = Sets.newHashSet("Hi", "Hello", 
        "Bye", "See 
         you");       
 
        fromSet.forEach(s->System.out.println(s));

        List<String> toList =  Lists.newArrayList(sourceSet);

        toList.forEach(s->System.out.println(s));
   }

Con Apache Commons Collections

Al igual que en el caso anterior, realizaremos la transformación únicamente en el método privado.

   private void convertToList() {
        System.out.println("Values .....");

    	Set<String> fromSet = Sets.newHashSet("Hi", "Hello", 
        "Bye", "See 
         you");       

        fromSet.forEach(s->System.out.println(s));

        List<Integer> toList = new ArrayList<>(4);
        CollectionUtils.addAll(targetList, sourceSet);
        
       toList.forEach(s->System.out.println(s));
   }

Convertir List a Set

Al igual que en el caso anterior, vamos a partir de una clase Java con un método main y un método privado en donde reside la lógica de los cambios de List a Set. Esta clase mostrará por pantalla los valores tanto del Set y de List.

Con Java

La transformación de List a Set haciendo uso únicamente de Java quedaría de la siguiente forma:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ConvertToListFromSet{
    public static void main( String[] args ){
    	
       convertToList();
    }

   private void convertToList() {
        System.out.println("Values .....");
    	List<String> fromList = Arrays.asList("Hi", "Hello", 
        "Bye", "See 
         you");       

        fromList.forEach(s->System.out.println(s)); 

        Set<String> toSet = new HashSet<>(sourceList);

        toSet.forEach(s->System.out.println(s));
   }
}

Salida:

Values .....
Hi
Hello
Bye
See you

Bye
Hello
Hi
See you

Como nota, hay que tener en cuenta que el set no mantiene el orden.

Con Guava:

Para este ejemplo cambiaremos únicamente el método privado que hemos creado:

   private void convertToList() {
        System.out.println("Values .....");
    	List<String> fromList = Lists.newArrayList("Hi", "Hello", 
        "Bye", "See 
         you");       

        fromList.forEach(s->System.out.println(s)); 

        Set<String> toSet = Sets.newHashSet(sourceList);

        toSet.forEach(s->System.out.println(s));
   }

Con Apache Commons Collections

Al igual que en el caso anterior únicamente modificamos el método privado:

   private void convertToList() {
        System.out.println("Values .....");
    	List<String> fromList = Lists.newArrayList("Hi", "Hello", 
        "Bye", "See 
         you");       

        fromList.forEach(s->System.out.println(s)); 

        Set<String> toSet = new HashSet<>(4);;
        CollectionUtils.addAll(toSet, fromList);

        toSet.forEach(s->System.out.println(s));
   }

Conclusión

En esta breve entrada hemos visto 3 maneras diferentes de como podemos transformar entre Set y List, y List a Set. En esta entrada hemos escrito unos ejemplos, que aunque de conceptos muy básicos, son bastante necesarios cuando se trabaja con Java.


Deja una respuesta

Tu dirección de correo electrónico no será publicada.