Obtener ArrayList del array int en Java

Mohammad Irfan 12 octubre 2023
  1. Creación de ArrayList de tipo int
  2. Agregar elemento entero a un índice en ArrayList
  3. Accediendo al elemento ArrayList con el índice
  4. ArrayList de matrices int
  5. Accediendo al elemento de array int desde ArrayList
  6. ArrayList de ArrayLists
  7. Resumen
Obtener ArrayList del array int en Java

Este tutorial presenta cómo obtener ArrayList de ints en Java y enumera algunos códigos de ejemplo para comprender el tema.

Una ArrayList es un array dinámica o redimensionable. Es parte de Collection Framework en Java. ArrayList se utiliza para superar el problema del tamaño fijo de los arrays normales. En este tutorial, aprenderemos cómo crear ArrayList de ints.

Creación de ArrayList de tipo int

ArrayList o cualquier otra colección no puede almacenar tipos de datos primitivos como int. Si escribimos el código que se muestra a continuación, obtendremos un error de compilación.

public class Demo {
  public static void main(String[] args) {
    ArrayList<int> arrList;
  }
}

Producción :

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Syntax error, insert "Dimensions" to complete ReferenceType
	at snippet.Demo.main(Demo.java:7)

En su lugar, usamos clases contenedoras para almacenar primitivas en ArrayList. Cada tipo de datos primitivo tiene una clase contenedora correspondiente que representa un objeto para el mismo tipo. Para el tipo de datos int, la clase contenedora se llama Integer. Entonces, para crear una ArrayList de ints, necesitamos usar la clase contenedora Integer como su tipo.

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
  }
}

Ahora podemos agregar enteros a la ArrayList usando el método add() de la clase.

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
  }
}

ArrayList, al igual que los arrays normales, sigue la indexación basada en cero. Podemos especificar el índice donde queremos agregar un objeto en el método add(). El elemento presente en ese índice y todos los elementos a su derecha se desplazarán un lugar a la derecha.

Agregar elemento entero a un índice en ArrayList

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    arrList.add(1, 199); // Inserting 199 at index 1.
  }
}

Accediendo al elemento ArrayList con el índice

Podemos buscar elementos individuales de ArrayList utilizando sus índices. Pase el valor del índice al método get() para obtener el elemento requerido.

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    arrList.add(1, 199); // Inserting 199 at index 1.
    System.out.println("Element at index 1: " + arrList.get(1));
    System.out.println("Element at index 2: " + arrList.get(2));
  }
}

Producción :

Element at index 1: 199
Element at index 2: 7

También podemos imprimir toda la ArrayList utilizando una única declaración de impresión.

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    System.out.println("Printing the ArrayList: " + arrList);
    arrList.add(1, 199); // Inserting 199 at index 1.
    System.out.println("Printing the ArrayList: " + arrList);
  }
}

Producción :

Printing the ArrayList: [5, 7, 12]
Printing the ArrayList: [5, 199, 7, 12]

ArrayList de matrices int

Podemos crear una ArrayList donde cada elemento en sí mismo es un array. Usamos el tipo de datos y los corchetes para crear una nueva matriz.

Del mismo modo, definimos el tipo de ArrayList utilizando int[]. No podemos usar primitivas como int como tipo ArrayList, pero podemos usar int[]. Esto se debe a que los arrays en Java son objetos, no primitivas. Y una ArrayList puede ser creada por cualquier tipo de objeto (matrices en nuestro caso).

ArrayList<int[]> arrList = new ArrayList<int[]>();

Podemos realizar todas las operaciones básicas que comentamos anteriormente. Necesitamos usar el método toString() de Arrays para imprimir correctamente el array en la consola.

import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();

    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);

    // Fetching the array from the List
    int[] arrAtIdx1 = arrList.get(1);

    // Printing the fetched array using the toString() method of Arrays
    System.out.println("The Second array in the List is: " + Arrays.toString(arrAtIdx1));
  }
}

Producción :

The Second array in the List is: [3, 6, 9]

Accediendo al elemento de array int desde ArrayList

También podemos acceder a los elementos individuales de los arrays int presentes en la ArrayList. Usaremos índices de array para hacer esto. Por ejemplo, si deseamos acceder al segundo elemento del tercer array, usaremos el siguiente código:

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();
    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);

    // Fetching the second element of the third array
    int[] thirdArr = arrList.get(2);
    int secondElement = thirdArr[1];
    System.out.println("Second Element of the Third Array is: " + secondElement);
  }
}

Producción :

Second Element of the Third Array is: 10

Sin embargo, necesitamos código adicional para imprimir toda la ArrayList de matrices.

import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();
    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);
    for (int i = 0; i < arrList.size(); i++) {
      int[] currArr = arrList.get(i);
      System.out.println("Array at index " + i + " is: " + Arrays.toString(currArr));
    }
  }
}

Producción :

Array at index 0 is: [2, 4, 6]
Array at index 1 is: [3, 6, 9]
Array at index 2 is: [5, 10, 15]

ArrayList de ArrayLists

Como se discutió anteriormente, los arrays son de longitud fija, pero las ArrayLists son dinámicas. En lugar de crear una ArrayList de matrices int, podemos crear una ArrayList de Integer ArrayLists. De esta manera, no tendremos que preocuparnos por quedarnos sin espacio en nuestra matriz.

ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();

Podemos usar el método add() y el método get() como antes. Sin embargo, necesitamos un bucle para imprimir cada elemento ArrayList.

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();
    // Creating individual ArrayLists
    ArrayList<Integer> arrList1 = new ArrayList<>();
    arrList1.add(2);
    arrList1.add(4);
    arrList1.add(6);
    ArrayList<Integer> arrList2 = new ArrayList<>();
    arrList2.add(3);
    arrList2.add(6);
    arrList2.add(9);
    ArrayList<Integer> arrList3 = new ArrayList<>();
    arrList3.add(5);
    arrList3.add(10);
    arrList3.add(15);
    // Adding ArrayLists to the ArrayList
    arrListOfarrLists.add(arrList1);
    arrListOfarrLists.add(arrList2);
    arrListOfarrLists.add(arrList3);
    // Fetching ArrayList
    ArrayList<Integer> listAtIdx1 = arrListOfarrLists.get(1);
    System.out.println("ArrayList present at index 1 is: " + listAtIdx1 + "\n");
    // Printing the entire ArrayList
    for (int i = 0; i < arrListOfarrLists.size(); i++)
      System.out.println("ArrayList at index " + i + " is " + arrListOfarrLists.get(i));
  }
}

Producción :

ArrayList present at index 1 is: [3, 6, 9]
ArrayList at index 0 is [2, 4, 6]
ArrayList at index 1 is [3, 6, 9]
ArrayList at index 2 is [5, 10, 15]

Si desea acceder a elementos individuales de ArrayList, utilice el método get() dos veces. Por ejemplo, si desea el segundo elemento del tercer ArrayList, utilice:

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();
    // Creating individual ArrayLists
    ArrayList<Integer> arrList1 = new ArrayList<>();
    arrList1.add(2);
    arrList1.add(4);
    arrList1.add(6);
    ArrayList<Integer> arrList2 = new ArrayList<>();
    arrList2.add(3);
    arrList2.add(6);
    arrList2.add(9);
    ArrayList<Integer> arrList3 = new ArrayList<>();
    arrList3.add(5);
    arrList3.add(10);
    arrList3.add(15);
    // Adding ArrayLists to the ArrayList
    arrListOfarrLists.add(arrList1);
    arrListOfarrLists.add(arrList2);
    arrListOfarrLists.add(arrList3);
    // Fetching second element of the third ArrayList
    ArrayList<Integer> thirdList = arrListOfarrLists.get(2);
    int secondElement = thirdList.get(1);
    System.out.print("second element of the third ArrayList is: " + secondElement);
  }
}

Producción :

second element of the third ArrayList is: 10

Resumen

ArrayList es probablemente la colección más utilizada en Java. Es una estructura de datos simple que se utiliza para almacenar elementos del mismo tipo. No podemos crear una ArrayList de tipos primitivos como int. Necesitamos usar las clases contenedoras de estas primitivas. La clase ArrayList proporciona métodos convenientes para agregar y recuperar elementos de la lista. También podemos crear una ArrayList de matrices o una ArrayList de ArrayLists. Se utilizan principalmente para representar datos en un formato de array 2D o un formato tabular. Es mejor usar una ArrayList de ArrayLists, ya que no limitará su tamaño.

Artículo relacionado - Java ArrayList