Вопрос-ответ

How to create a Multidimensional ArrayList in Java?

Как создать многомерный список массивов в Java?

Мне нужно создать многомерный список массивов для хранения строковых значений. Я знаю, как это сделать со стандартным массивом, вот так: public static String[][] array = {{}} но это бесполезно, потому что я не знаю размера своего массива, все, что я знаю, это сколько измерений он будет иметь.

Как я могу создать "динамически изменяемый массив с размерами 2 / +"?

Редактировать / Обновить


Может быть, было бы проще изменить размер или определить стандартный массив с помощью переменной? Но я не знаю?
Хотя, вероятно, проще использовать мою первоначальную идею ArrayList ... Все, что мне нужно, это полный пример кода для создания 2D списка массивов и добавления so примеров значений к обоим измерениям без знания индекса.

Переведено автоматически
Ответ 1

ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>();

В зависимости от ваших требований, вы можете использовать универсальный класс, подобный приведенному ниже, чтобы упростить доступ:

import java.util.ArrayList;

class TwoDimentionalArrayList<T> extends ArrayList<ArrayList<T>> {
public void addToInnerArray(int index, T element) {
while (index >= this.size()) {
this.add(new ArrayList<T>());
}
this.get(index).add(element);
}

public void addToInnerArray(int index, int index2, T element) {
while (index >= this.size()) {
this.add(new ArrayList<T>());
}

ArrayList<T> inner = this.get(index);
while (index2 >= inner.size()) {
inner.add(null);
}

inner.set(index2, element);
}
}
Ответ 2

Если вам разрешено использовать предопределенные классы Java, вы могли бы сделать что-то вроде:

private static ArrayList<ArrayList<String>> biDemArrList = new ArrayList<ArrayList<String>>();

Затем вы можете добавить новые элементы, что-то вроде:

ArrayList<String> temp = new ArrayList<String>(); // added () 
temp.add("Hello world.");
biDemArrList.add(temp);

Надеюсь, вы понимаете, что я имею в виду и что происходит. Кроме того, вам нужно будет импортировать java.util.ArrayList; для этого, если вы используете класс Java.

Ответ 3
Ответ 4

Однажды мне потребовался двухмерный ArrayList, и я создал его, используя List и ArrayList, и код выглядит следующим образом:

import java.util.*;

public class ArrayListMatrix {

public static void main(String args[]){

List<ArrayList<Integer>> a = new ArrayList<>();

ArrayList<Integer> a1 = new ArrayList<Integer>();
ArrayList<Integer> a2 = new ArrayList<Integer>();
ArrayList<Integer> a3 = new ArrayList<Integer>();


a1.add(1);
a1.add(2);
a1.add(3);

a2.add(4);
a2.add(5);
a2.add(6);

a3.add(7);
a3.add(8);
a3.add(9);

a.add(a1);
a.add(a2);
a.add(a3);


for(ArrayList obj:a){

ArrayList<Integer> temp = obj;

for(Integer job : temp){
System.out.print(job+" ");
}
System.out.println();
}
}
}

Вывод:

1 2 3

4 5 6

7 8 9

Источник : https://www.codepuran.com/java/2d-matrix-arraylist-collection-class-java /

java arraylist