Array de ArrayList en Java

A menudo nos encontramos con arrays 2D donde la mayor parte de la array está vacía. Dado que el espacio es un gran problema, intentamos diferentes cosas para reducir el espacio. Una de esas soluciones es usar una array irregular cuando conocemos la longitud de cada fila en la array, pero el problema surge cuando no conocemos específicamente la longitud de cada una de las filas. Aquí usamos ArrayList ya que se desconoce la longitud.
El siguiente es un programa Java para demostrar el concepto anterior.

// Java code to demonstrate the concept of 
// array of ArrayList
  
import java.util.*;
public class Arraylist {
    public static void main(String[] args)
    {
        int n = 5;
  
        // Here al is an array of arraylist having
        // n number of rows.The number of columns on
        // each row depends on the user.
        // al[i].size() will give the size of the
        // i'th row
        ArrayList<Integer>[] al = new ArrayList[n];
  
        // initializing
        for (int i = 0; i < n; i++) {
            al[i] = new ArrayList<Integer>();
        }
  
        // We can add any number of columns to each
        // rows as per our wish
        al[0].add(1);
        al[0].add(2);
        al[1].add(5);
        al[2].add(10);
        al[2].add(20);
        al[2].add(30);
        al[3].add(56);
        al[4].add(34);
        al[4].add(67);
        al[4].add(89);
        al[4].add(12);
  
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < al[i].size(); j++) {
                System.out.print(al[i].get(j) + " ");
            }
            System.out.println();
        }
    }
}

Producción :

1 2 
5 
10 20 30 
56 
34 67 89 12 

El código anterior funciona bien, pero muestra la siguiente advertencia.

prog.java:15: warning: [unchecked] unchecked conversion
        ArrayList[] al = new ArrayList[n];
                                  ^
  required: ArrayList[]
  found:    ArrayList[]
1 warning

La advertencia viene básicamente debido a la línea de abajo.

ArrayList<Integer>[] al = new ArrayList[n];

¿Cómo arreglar la advertencia anterior?
No podemos usar una array de ArrayList sin previo aviso. Básicamente necesitamos usar ArrayList de ArrayList .

Publicación traducida automáticamente

Artículo escrito por debjitdbb y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *