Есть
Map<Integer,Picture> mPict = new HashMap<>();
и
Picture[] aPict = new Picture[100];
Что будет работать быстрее и насколько?
Как буду использовать: один раз заполню массив или карту, а потом буду обращаться к элементам. По одному или по порядку. Пересоздание массива или карты не планируется. При загрузке приложения заполню массив данными из файлов и все, буду их использовать, чтобы не обращаться постоянно к файлам.
HashMap это структура данных позволяющая делать быстрый поиск по ключу. То есть поиск делается за константное количество операций O(1).
Если же вам надо найти элемент в массиве, то это делается через полный перебор элементов, то есть количество операций O(n).
Соответственно если у вас будет много операций поиска, то HashMap значительно быстрее.
Если речь идёт о добавлении элементов, то опять же HashMap работает быстрее так как массив полностью пересоздаётся при изменении числа элементов, да и вообще в него добавлять нельзя, он фиксированный по размеру.
Но это всё в случае большого количества элементов. При малом количестве элементов массив будет работать быстрее.
Места же HashMap занимает побольше, так как это сложная структура данных и для поддержания быстрого поиска в нём имеются скрытые дополнительные элементы, которые занимают память.
Конечно есть много разных ситуаций, и в каждой ситуации решение что применять лучше может быть своё, в этом посте я не буду описывать все варианты. А ваш вопрос не позволяет ответить более точно именно для вашего варианта, недостаточно данных.
Почитать про Map.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как поменять версию java в Maven compiler? Не для конкретного проекта в POM файле, а в настройках Maven? У меня прописаны переменные "JAVA_HOME" и "MAVEN_HOME"Текущая...
При инициализации viewModel использую кастомный Factory с передачей в конструктор аргумента