Операции на double[][]
и ArrayList<ArrayList<Double>>
будут выполняться с одинаковыми Границами Big-O .
То есть бессимптомными границамиодинаковы - если ArrayList не должен изменять размер , тогда доступ действительно равен O(1)
для операций с индексами (даже если C
[константа] может быть больше для доступа и двойной / двойной бокс и память-локальность).Выбор одного из других не увеличит или не уменьшит сложность и не изменит Big-O.
Какой из них настенные часы быстрее?Мои ставки на массив, но единственный способ «узнать наверняка», включая «насколько быстрее» и в каких случаях, - это сравнить различные структуры в данной среде / проблеме / размере проблемыи сравните результаты .(Это должен быть один из первых шагов при попытке «оптимизировать».)
Удачное кодирование.