Многомерные коллекции в Java

Опубликовано: 23 Января, 2022

В Java у нас есть структура Collection, которая обеспечивает функциональность для хранения группы объектов.
Синтаксис:

 ArrayList <Object> x = новый ArrayList <Object> ();

Примеры:

Одномерный ArrayList:
[121, 432, 12, 56, 456, 3, 1023]
[Яблоко, Апельсин, Груша, Манго]

Это называется одномерным списком ArrayList, в котором мы можем иметь только один элемент в строке.
Но что, если мы хотим создать многомерный ArrayList? Для этой функциональности у нас есть многомерные коллекции (или вложенные коллекции) в java.

Что такое многомерные коллекции в Java?
Многомерные коллекции (или вложенные коллекции) - это совокупность группы объектов, в которой каждая группа может динамически иметь любое количество объектов. Следовательно, здесь мы можем хранить любое количество элементов в группе, когда захотим.

Нужны многомерные коллекции в Java?
В отличие от массивов мы не привязаны к размеру какой-либо строки в многомерных коллекциях.
Следовательно, если мы хотим использовать многомерную архитектуру, в которой мы можем динамически создавать любое количество объектов в строке, тогда мы должны использовать многомерные коллекции в Java.

Синтаксис для многомерных коллекций:

ArrayList<ArrayList<Object>> a = new ArrayList<ArrayList<Object>>();

Примеры:

Multidimensional ArrayList: [[3, 4], [12, 13, 14, 15], [22, 23, 24], [33]]

Добавить метод для многомерного ArrayList в Java:

boolean add( ArrayList<Object> e) : It is used to insert elements in the specified collection.
void add( int index, ArrayList<Object> e) : It is used to insert the elements at specified
position in a Collection.

Below is implementation of Multidimensional ArrayList in Java :

/* Java program for Multidimensional ArrayList */
  
import java.util.*;
  
class MultidimensionalArrayList {
  
    /*function for creating and returning 2D ArrayList*/
    static List create2DArrayList()
    {
        /*Declaring 2D ArrayList*/
        ArrayList<ArrayList<Integer> > x
            = new ArrayList<ArrayList<Integer> >();
  
        /*one space allocated for 0th row*/
        x.add(new ArrayList<Integer>());
  
        /*Adding 3 to 0th row created above x(0, 0)*/
        x.get(0).add(0, 3);
  
        /*Creating 1st row and adding values 
       (another way for adding values in 2D collections)*/
        x.add(new ArrayList<Integer>(Arrays.asList(3, 4, 6)));
  
        /*Add 366 to 1st row 0th column x(1, 0)*/
        x.get(1).add(0, 366);
  
        /*Add 576 to 1st row 4th column x(1, 4)*/
        x.get(1).add(4, 576);
  
        /*Adding values to 2nd row*/
        x.add(2, new ArrayList<>(Arrays.asList(3, 84)));
  
        /*Adding values to 3rd row*/
        x.add(new ArrayList<Integer>(Arrays.asList(83, 6684, 776)));
  
        /*Adding values to 4th row*/
        x.add(new ArrayList<>(Arrays.asList(8)));
  
        return x;
    }
  
    public static void main(String args[])
    {
        System.out.println("2D ArrayList :");
  
        /*Printing 2D ArrayList*/
        System.out.println(create2DArrayList());
    }
}
Output:

2D ArrayList :
[[3], [366, 3, 4, 6, 576], [3, 84], [83, 6684, 776], [8]]