Что такое прозрачная цель SparseBooleanArray?

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

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

Solutions Collecting From Web of "Что такое прозрачная цель SparseBooleanArray?"

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

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

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

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

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

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

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

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

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

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

Вы можете поместить значение true или false в позицию в списке.

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