Что такое эквивалент Java Objective-C NSDictionary?
Какова ближайшая реализация Objective-C NSDictionary
в Java? Для меня это выглядит как HashMap<String, Object>
, но я очень новичок в Objective-C.
Спасибо
Ответы
Ответ 1
NSDictionary
- кластер классов (см. раздел "Кластер Класса" в Руководство по основам Cocoa), что означает, что фактическое реализация скрыта от вас, пользователя API. Фактически, Foundation Foundation выберет соответствующую реализацию во время выполнения на основе количества данных и т.д. Кроме того, NSDictionary
может взять любой id
в качестве ключа, а не только NSString
(конечно, -hash
ключевого объекта должен быть постоянным).
Таким образом, ближайший аналог, вероятно, Map<Object,Object>
.
Ответ 2
Для практического использования:
HashMap<String, Object>
- это путь для простого, непараллельного словаря.
Однако, если вам нужно что-то потокобезопасное (атомное), вам придется использовать
HashTable<String, Object>
который является потокобезопасным, но - особенно - не принимает значение null как допустимое значение или ключ.
Ответ 3
Я, по общему признанию, новичок в Android, но для меня ContentValues, по-видимому, ближе всего к NSDictionary
.