Convertir ArrayList a Int Array en Java

Joel Swapnil Singh 12 octubre 2023
  1. Necesidad de convertir un Arraylist a un Array Int
  2. Formas de convertir un Arraylist en un Array Int
Convertir ArrayList a Int Array en Java

Podemos almacenar tanto tipos de datos primitivos (tipos de datos con un tamaño definido e incluir datos de tipos similares como byte, char, short, int, etc.) como objetos de clase en un array.

Mientras que podemos almacenar solo objetos de clase en un ArrayList. Además, una ArrayList tiene una longitud dinámica que puede aumentar o disminuir según la cantidad de elementos.

En este artículo, discutiremos diferentes formas de convertir una lista de arreglos en un arreglo int en Java.

Necesidad de convertir un Arraylist a un Array Int

Podemos realizar todas las operaciones realizadas usando un array con la ayuda de una ArrayList.

Pero un ArrayList es comparativamente lento en la ejecución de diferentes operaciones. Esto se debe a que una ArrayList tiene una colección de acciones como get(), put(), resize(), y muchas otras, todas las cuales afectan el tiempo de CPU y la utilización de la memoria.

Si necesita realizar algunas acciones solo en datos de tamaño fijo, siempre debe usar Arrays en lugar de ArrayList.

Formas de convertir un Arraylist en un Array Int

Supongamos que nos dan una ArrayList de enteros. Necesitamos convertir el ArrayList en un Array int. Podemos hacer esto usando un bucle for, el método Object[] toArray(), el método T[] toArray() y el método mapToInt().

Discutamos cada uno de los enfoques uno por uno.

Conversión de Arraylist a Int Array usando un bucle for

Podemos convertir manualmente ArrayList en un array int usando un bucle for. Si nos dan una ArrayList, primero declararemos un array int del mismo tamaño que la ArrayList.

Podemos usar la función size() para calcular el tamaño de ArrayList. Ahora podemos copiar los elementos de datos de ArrayList en el array int.

Para ello utilizaremos el método get() y el bucle for para recorrer los elementos de ArrayList. Hemos implementado este enfoque a continuación en la función solve().

Echemos un vistazo al siguiente código para entender cómo funciona.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    int[] arr = new int[nums.size()];
    for (int i = 0; i < nums.size(); i++) {
      arr[i] = nums.get(i);
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Producción :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Conversión de Arraylist a Int Array usando la función Object[] toArray()

También podemos usar la función Object[] toArray() para convertir un ArrayList en un array int en Java.

Si se le da una ArrayList, primero construiremos un objeto Object y usaremos la función toArray(). Tenga en cuenta que el método toArray() devuelve un array de tipo Object.

Para eliminar esto, debemos encasillarlo en el tipo de datos deseado (en este caso, int) para evitar errores de compilación. Hemos implementado este enfoque a continuación en la función solve().

Echemos un vistazo al siguiente código para entender cómo funciona.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    Object[] obj_arr = nums.toArray();
    int[] arr = new int[nums.size()];
    for (int i = 0; i < obj_arr.length; i++) {
      arr[i] = (int) obj_arr[i];
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Producción :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Conversión de Arraylist a Int Array usando la función T[] toArray

También podemos usar la función T[] toArray() para convertir una ArrayList en un array int en Java. Si se le da una ArrayList, primero construiremos un objeto Integer y usaremos la función toArray().

En este método, si el array no es lo suficientemente grande, se asigna una nueva matriz del mismo tipo para este propósito. Hemos implementado este enfoque a continuación en la función solve().

Echemos un vistazo al siguiente código para entender cómo funciona.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    Integer[] int_arr = new Integer[nums.size()];
    int_arr = nums.toArray(int_arr);
    int[] arr = new int[nums.size()];
    for (int i = 0; i < int_arr.length; i++) {
      arr[i] = int_arr[i];
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Producción :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Conversión de Arraylist a Int Array usando la función mapToInt()

También podemos convertir una ArrayList a un array int en Java combinando el método streams() de la lista con la función mapToInt(), que convierte los datos de la ArrayList en valores enteros primitivos. Este es un método nuevo y fascinante para convertir una ArrayList en un array de enteros a la que se puede acceder a partir de Java 8.

Si se le da una ArrayList, primero llamaremos a la función stream() en la ArrayList provista. Después de eso, invocaremos el método mapToInt(), que devuelve un flujo de enteros que consta de resultados.

Y después de eso, llamaremos al método toArray(), que convertirá los resultados extraídos en un array int. Hemos implementado este enfoque a continuación en la función solve().

Echemos un vistazo al siguiente código para entender cómo funciona.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    int[] arr = nums.stream().mapToInt(i -> i).toArray();
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Producción :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Artículo relacionado - Java Array

Artículo relacionado - Java ArrayList