Conversión entre una matriz y una lista

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Las matrices son estructuras de datos lineales ampliamente utilizadas en Java para almacenar colecciones de datos. Permiten el acceso aleatorio a cualquier elemento de la matriz utilizando su índice, ya que los elementos se asignan en bloques contiguos de memoria. Por otro lado, la interfaz List proporciona una forma de mantener una colección ordenada de datos y está implementada por clases como ArrayList y LinkedList. En este laboratorio, aprenderemos cómo convertir una matriz en una lista y viceversa utilizando varios métodos en Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("ArrayList") subgraph Lab Skills java/for_loop -.-> lab-117399{{"Conversión entre una matriz y una lista"}} java/arrays -.-> lab-117399{{"Conversión entre una matriz y una lista"}} java/arrays_methods -.-> lab-117399{{"Conversión entre una matriz y una lista"}} java/collections_methods -.-> lab-117399{{"Conversión entre una matriz y una lista"}} java/arraylist -.-> lab-117399{{"Conversión entre una matriz y una lista"}} end

Conversión de matriz a lista utilizando el método asList()

El método asList() de la clase Arrays se puede utilizar para convertir una matriz en una lista. Toma la matriz como parámetro y devuelve una lista de sus elementos. Realizaremos los siguientes pasos para convertir una matriz en una lista utilizando el método asList():

  • Crear una matriz de cadenas y una matriz de enteros, y inicializarlas con valores
  • Utilizar el método Arrays.asList() para convertir las matrices en listas
  • Imprimir las listas
import java.util.Arrays;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Paso 1: Conversión de matriz a lista utilizando el método asList()
        // Crear una matriz de cadenas
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Crear una matriz de enteros
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Convertir las matrices en listas utilizando el método asList()
        List<String> strList = Arrays.asList(strArr);
        List<Integer> intList = Arrays.asList(intArr);
        // Imprimir las listas
        System.out.println("Array to List using asList() Method: ");
        System.out.println(strList);
        System.out.println(intList);
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Conversión de matriz a lista utilizando el método Collections.addAll()

El método Collections.addAll() se puede utilizar para agregar todos los elementos de una matriz a una lista. Primero debemos crear una lista vacía y luego pasar la matriz existente y la nueva lista como parámetros a este método. Realizaremos los siguientes pasos para convertir una matriz en una lista utilizando el método Collections.addAll():

  • Crear una matriz de cadenas y una matriz de enteros, y inicializarlas con valores
  • Crear una lista vacía de los tipos de datos correspondientes, utilizando la clase ArrayList
  • Utilizar el método Collections.addAll() para agregar los elementos de las matrices a las listas
  • Imprimir las listas
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Paso 2: Conversión de matriz a lista utilizando el método Collections.addAll()
        // Crear una matriz de cadenas
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Crear una matriz de enteros
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Crear listas vacías de los tipos de datos correspondientes
        List<String> strList = new ArrayList<String>();
        List<Integer> intList = new ArrayList<Integer>();
        // Utilizar el método Collections.addAll() para agregar los elementos de las matrices a las listas
        Collections.addAll(strList, strArr);
        Collections.addAll(intList, intArr);
        // Imprimir las listas
        System.out.println("Array to List using Collections.addAll() Method: ");
        System.out.println(strList);
        System.out.println(intList);
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Conversión de matriz a lista utilizando el método Lists.newArrayList() de Guava

El método Lists.newArrayList() de la biblioteca Guava también se puede utilizar para convertir una matriz en un ArrayList. Realizaremos los siguientes pasos para convertir una matriz en una lista utilizando el método Lists.newArrayList():

  • Crear una matriz de cadenas y una matriz de enteros, y inicializarlas con valores
  • Utilizar el método Lists.newArrayList() para convertir las matrices en ArrayLists
  • Imprimir los ArrayLists
import com.google.common.collect.Lists;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Paso 3: Conversión de matriz a lista utilizando el método Lists.newArrayList() de Guava
        // Crear una matriz de cadenas
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Crear una matriz de enteros
        Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
        // Convertir las matrices en ArrayLists utilizando el método Lists.newArrayList() de Guava
        List<String> strList = Lists.newArrayList(strArr);
        List<Integer> intList = Lists.newArrayList(intArr);
        // Imprimir los ArrayLists
        System.out.println("Array to List using Guava's Lists.newArrayList() Method: ");
        System.out.println(strList);
        System.out.println(intList);
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Escribiendo nuestro propio método para convertir una matriz en una lista

También podemos escribir nuestro propio método para convertir una matriz en una lista. Utilizaremos el método add() de la interfaz List para agregar los elementos de la matriz a la lista. Realizaremos los siguientes pasos para escribir nuestro propio método:

  • Escribir un método que tome una matriz de cadenas como parámetro y devuelva una lista de cadenas
  • Dentro del método, crear una ArrayList vacía
  • Recorrer la matriz y agregar cada elemento a la ArrayList utilizando el método add()
  • Devolver la ArrayList
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    // Paso 4: Escribiendo nuestro propio método para convertir una matriz en una lista
    public static List<String> arrayToList(String[] strArr) {
        List<String> strList = new ArrayList<String>();
        for(int i = 0; i <= strArr.length - 1; i++)
            strList.add(strArr[i]);
        return strList;
    }

    public static void main(String[] args) {
        // Crear una matriz de cadenas
        String[] strArr = {"this", "is", "a", "string", "array"};
        // Convertir la matriz en una lista utilizando nuestro propio método
        List<String> strList = arrayToList(strArr);
        // Imprimir la lista
        System.out.println("Array to List using our own method: ");
        System.out.println(strList);
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Conversión de lista a matriz utilizando el método toArray()

El método toArray() se puede utilizar para convertir una lista en una matriz. Toma una matriz como parámetro y devuelve una matriz que contiene los elementos de la lista. Realizaremos los siguientes pasos para convertir una lista en una matriz utilizando el método toArray():

  • Crear una ArrayList y agregar elementos a ella
  • Utilizar el método toArray() para convertir la ArrayList en una matriz
  • Imprimir la matriz
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Paso 5: Conversión de lista a matriz utilizando el método toArray()
        // Crear una ArrayList
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Convertir la ArrayList a matriz utilizando el método toArray()
        String[] strArr = strList.toArray(new String[0]);

        // Imprimir la matriz
        System.out.println("List to Array using toArray() Method: ");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Conversión de lista a matriz utilizando el método Iterables.toArray() de Guava

El método Iterables.toArray() de la biblioteca Guava también se puede utilizar para convertir una lista en una matriz. Realizaremos los siguientes pasos para convertir una lista en una matriz utilizando el método Iterables.toArray():

  • Crear una ArrayList y agregar elementos a ella
  • Utilizar el método Iterables.toArray() para convertir la ArrayList en una matriz
  • Imprimir la matriz
import com.google.common.collect.Iterables;
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static void main(String[] args) {
        // Paso 6: Conversión de lista a matriz utilizando el método Iterables.toArray() de Guava
        // Crear una ArrayList
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Convertir la ArrayList a matriz utilizando el método Iterables.toArray() de Guava
        String[] strArr = Iterables.toArray(strList, String.class);

        // Imprimir la matriz
        System.out.println("List to Array using Guava's Iterables.toArray() Method: ");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Escribiendo nuestro propio método para convertir una lista en una matriz

También podemos escribir nuestro propio método para convertir una lista en una matriz. Recorreremos la lista y obtendremos cada elemento utilizando el método get() y lo agregaremos a la matriz utilizando los índices de la matriz. Realizaremos los siguientes pasos para escribir nuestro propio método:

  • Escribir un método que tome una lista de cadenas como parámetro y devuelva una matriz de cadenas
  • Dentro del método, crear una matriz de cadenas vacía con un tamaño igual al tamaño de la lista
  • Recorrer la lista y agregar cada elemento a la matriz utilizando los índices de la matriz
  • Devolver la matriz
import java.util.ArrayList;
import java.util.List;

public class ArrayToList {
    public static String[] listToArray(List<String> strList) {
        String[] strArr = new String[strList.size()];
        for(int i = 0; i <= strList.size() - 1; i++)
            strArr[i] = strList.get(i);
        return strArr;
    }

    public static void main(String[] args) {
        // Escribiendo nuestro propio método para convertir una lista en una matriz
        // Creando una ArrayList
        List<String> strList = new ArrayList<String>();
        strList.add("this");
        strList.add("is");
        strList.add("a");
        strList.add("string");
        strList.add("array");

        // Convertir la ArrayList a matriz utilizando nuestro propio método
        String[] strArr = listToArray(strList);

        // Imprimiendo la matriz
        System.out.println("List to Array using our own method: ");
        for(int i = 0; i <= strArr.length - 1; i++)
            System.out.print(strArr[i] + " ");
    }
}

Para ejecutar el código, abra la terminal, navegue hasta la carpeta del proyecto y escriba el siguiente comando: javac ArrayToList.java && java ArrayToList

Resumen

En este laboratorio, exploramos varios métodos para convertir una matriz en una lista y luego convertir la lista nuevamente en una matriz en Java. Vimos cómo podemos utilizar el método asList() de la clase Arrays, el método addAll() de la clase Collections y el método Lists.newArrayList() de la biblioteca Guava para convertir una matriz en una lista. También vimos cómo podemos utilizar el método toArray() y el método Iterables.toArray() de la biblioteca Guava para convertir una lista en una matriz. Finalmente, escribimos nuestros propios métodos para realizar estas conversiones. Comprender los diferentes métodos de convertir matrices en listas y viceversa puede ayudarnos a aprovechar el potencial de ambas estructuras de datos y mejorar nuestras habilidades de programación en Java.