Ответ 1
Из того, что я получаю из документации, он предназначен для сопоставления значений Integer с булерами.
То есть, если вы хотите сопоставить, если для определенного идентификатора пользователя должен быть показан виджет, а некоторые идентификаторы пользователя уже удалены, у вас будут пробелы в вашем сопоставлении.
Значение, с обычным массивом, вы должны создать массив size = maxID и добавить значение boolean в элемент в index = userID. Затем при итерации по массиву вам придется перебирать элементы maxID в худшем случае и проверять на null
, если для этого индекса нет булевых (например, идентификатор не существует). Это действительно неэффективно.
При использовании hashmap для этого вы можете сопоставить идентификатор с логическим, но с добавленными накладными расходами на генерирование hashvalue для ключа (поэтому он называется * hash * map), что в конечном итоге повредило бы производительность во-первых в цикле процессора, а также в использовании ОЗУ.
Таким образом, SparseBooleanArray кажется хорошим средством общения с такой ситуацией.
ПРИМЕЧАНИЕ. Несмотря на то, что мой пример действительно подтвержден, я надеюсь, что это иллюстрирует ситуацию.