Что такое прозрачная цель sparseBooleanArray? [Я сослался на официальный сайт для Android]

Я назвал сайт android doc для класса "SparseBooleanArray", но до сих пор не понял идею этого класса о том, что является целью этого класса? Для чего нам нужно использовать этот класс?

Вот ссылка Doc http://developer.android.com/reference/android/util/SparseBooleanArray.html

Ответ 1

Из того, что я получаю из документации, он предназначен для сопоставления значений Integer с булерами.

То есть, если вы хотите сопоставить, если для определенного идентификатора пользователя должен быть показан виджет, а некоторые идентификаторы пользователя уже удалены, у вас будут пробелы в вашем сопоставлении.

Значение, с обычным массивом, вы должны создать массив size = maxID и добавить значение boolean в элемент в index = userID. Затем при итерации по массиву вам придется перебирать элементы maxID в худшем случае и проверять на null, если для этого индекса нет булевых (например, идентификатор не существует). Это действительно неэффективно.

При использовании hashmap для этого вы можете сопоставить идентификатор с логическим, но с добавленными накладными расходами на генерирование hashvalue для ключа (поэтому он называется * hash * map), что в конечном итоге повредило бы производительность во-первых в цикле процессора, а также в использовании ОЗУ.

Таким образом, SparseBooleanArray кажется хорошим средством общения с такой ситуацией.

ПРИМЕЧАНИЕ. Несмотря на то, что мой пример действительно подтвержден, я надеюсь, что это иллюстрирует ситуацию.

Ответ 2

Как и javadoc говорит SparseBooleanArrays map integers to booleans, что в основном означает, что он похож на карту с Integer как ключ и логическое значение (Карта).

Однако он более эффективен для использования в данном конкретном случае It is intended to be more efficient than using a HashMap to map Integers to Booleans

Надеемся, что это устраняет любые проблемы, которые вы имели с описанием.

Ответ 3

Я нашел очень специфическое и замечательное использование для разреженного булевского массива.

Вы можете поместить истинное или ложное значение, которое будет связано с позицией в списке.

Например: щелкнул элемент списка # 7, так что в качестве значения и значения 7 введите 7 в качестве ключа.