Многомерные коллекции в Java
В 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()); } } |
2D ArrayList : [[3], [366, 3, 4, 6, 576], [3, 84], [83, 6684, 776], [8]]