Java массив VS arrayList

226
07 апреля 2017, 21:29

Сделал приложение, в котором собираешь электрические схемы и запускаешь их: из дерева выбираешь элемент, переносишь его, передвигаешь, собираешь схему. Сделано всё это при помощи только массивов. Программировать начал недавно. Встал вопрос, целесообразно ли переходить на ArrayList. Массивы в основном трех- и четырехмерные. Соответственно, чтобы сделать его через ArrayList, необходимо что-то такое:

ArrayList<ArrayList<ArrayList<Integer>>> arrayList = new ArrayList<ArrayList<ArrayList<Integer>>>();
        for (int i = 0; i < 2; i++) {
            ArrayList<ArrayList<Integer>> arrayList2 = new ArrayList<ArrayList<Integer>>();
            arrayList.add(arrayList2);
            for (int k = 0; k < 4; k++) {
                ArrayList<Integer> row = new ArrayList<Integer>();
                for (int j = 0; j < 3; j++) {
                    row.add(c);
                    c++;
                }
                arrayList2.add(row);
            }
        }

Для объявления массива хватит

String[][][][] VarText = new String[2][20][100][10];

Собственно вопрос, плюсы и минусы такого перехода, и хотелось бы узнать у более опытных программистов, через что это обычно делается.

Answer 1

Массивы в java имеют статическую размерность. Поэтому если кол-во элементов, которые необходимо вставить в массив заранее неизвестно - придется пересоздавать массив самостоятельно.

ArrayList - удобная обёртка над массивами, которая ещё и соответсвует интерфейсам collection API. Он, так же оперирует обычными массивами, но позволяет не задумываться о размерностях, поскольку умеет пересоздавать внутри себя массивы, при их заполнении.

READ ALSO
Что это за алгоритм (GOST)?

Что это за алгоритм (GOST)?

Встретился вопрос: как реализовать алгоритм GOST?

286
как сделать чтобы картинка взял цвет заднего фона

как сделать чтобы картинка взял цвет заднего фона

есть фон такой из личного блога Билла Гейтса там как видите 2 фотки они приняли цвет заднего фона оранжевый(на одном он с женой в другом какой...

375
vue заполнить template из json

vue заполнить template из json

имеется json такого вида

204