В Java TreeMap используется для словарей, где ключи хранятся отсортированными.
На Android ArrayMap используется как «эффективный для памяти» HashMap, где (я так понимаю) ключи хранятся отсортированными, потому что
для поиска требуется двоичный поиск, а для добавления и удаления требуется вставка и удаление записей в массиве
Использование памяти:
... этот контейнер предназначен для лучшего баланса использования памяти ...
Он сохраняет свои отображения в структуре данных массива - целочисленный массив хеш-кодов для каждого элемента и массив Object пар ключ / значение. Это позволяет избежать создания дополнительного объекта для каждой записи на карте.
... он будет уменьшать свой массив при удалении элементов из него ...
Мы можем сделать разумный вывод, что ArrayMap
не подходит для хранения ~ 1000 + предметов:
Для контейнеров, содержащих до сотни предметов, разница в производительности незначительна, менее 50%.
Обратите внимание, что эта реализация не предназначена для использования в структурах данных, которые могут содержать большое количество элементов.
Каковы дополнительные затраты / выгоды от использования одного над другим в целом?
- является ли
ArrayMap
реализация Android безопасной для потоков (таким образом, более медленной)?
- есть ли способ повлиять на сортировку в
ArrayMap
?
- есть ли подобные структуры данных в Гуаве?
- и т. Д.