Autor Tema: CU00679B# Transformar un array de tipo primitivo en colección de objetos (List)  (Leído 3176 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Aquí dejo mi respuesta al ejercicio, muy simple, creo hace lo que se pide, mi duda de si está bien es que solo añado un Objeto String al LinkedList.

Pero mirando no es posible añadir más pues toString(boolean [] a) solo acepta array de boolean, no primitivos por separado (para luego añadirlos uno a uno al LinkedList como Strings.

AsList funcionaria igual pero enviando una referencia o apuntador a un List, que luego habria que desenredar con un Iterator imagino, así que lo deje así.

Código: [Seleccionar]
import java.util.Arrays;
import java.util.LinkedList;

public class BooleanosArray{
   
    public static void main (String[] args){

        boolean [] arrayBooleanos = {true, true, false, false, true, false};

        LinkedList <String> listaUnida = new LinkedList <String>();

        listaUnida.add(Arrays.toString(arrayBooleanos));

        System.out.println(listaUnida);
    }
}

He visto soluciones con asList pero declarando Boolean el array, Clase no boolean primitivos que entendia pide el enunciado.

Si los declaro como Objetos de clase Boolean efectivamente si se puede pasar como List a LinkedList y los asigna uno a uno en la LinkedList.

Código: [Seleccionar]
import java.util.Arrays;
import java.util.LinkedList;

public class BooleanosArray{
   
    public static void main (String[] args){

        Boolean [] arrayBooleanos = {true, true, false, false, true, false};

        LinkedList <Boolean> listaUnida = new LinkedList <Boolean>(Arrays.asList(arrayBooleanos));

        //listaUnida.add(Arrays.toString(arrayBooleanos));

        System.out.println(listaUnida);
    }
}


Cuanta información de golpe espero poco a poco con la práctica se me vaya ordenando en la cabeza todo esto que voy pez :-)
« Última modificación: 09 de Abril 2015, 10:19 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Hola Lorenzo, esta solución responde perfectamente a lo que pedía el ejercicio:

Código: [Seleccionar]
import java.util.Arrays;
import java.util.LinkedList;

public class BooleanosArray55{   
    public static void main (String[] args){
        Boolean [] arrayBooleanos = {true, true, false, false, true, false};
        LinkedList <Boolean> listaUnida = new LinkedList <Boolean>(Arrays.asList(arrayBooleanos));
        System.out.println(listaUnida);
    }
}

La transformación a String es algo que no pedía el ejercicio, ni es algo que se suela hacer habitualmente (no sé bien si lo has querido hacer para probar o si interpretaste que debías hacerlo).

Hay algo interesante: Java nos permite transformar un array de objetos (por ejemplo Boolean o String) en una lista usando asList. Pero no nos permite transformar un array de tipos primitivos en una lista usando asList.


Puede ocurrir que necesitemos transformar un array de tipo primitivo boolean a algún tipo de lista como LinkedList ó ArrayList de Boolean (es decir, pasar de un array de tipos primitivos a una colección de objetos).

Aunque no lo pedía el ejercicio, para quien tenga interés esto podría hacerse así:

Código: [Seleccionar]
import java.util.Arrays;
import java.util.LinkedList;

public class BooleanosArray9{   
    public static void main (String[] args){
        boolean [] arrayBooleanos = {true, true, false, false, true, false};
        LinkedList<Boolean> boolList = new LinkedList<Boolean>();
    for (int index = 0; index < arrayBooleanos.length; index++)   {             
                                       boolList.add(arrayBooleanos[index]);    }   
        System.out.println("boolList: "+boolList);
    }
}

Saludos

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Vale mil gracias Mario, tomo nota de tus consideraciones como siempre, yo interprete un paso en toString pero luego ya me queda claro al ver otras soluciones, el que debia hacerse y el porque del ejercicio.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".