Java - "Ассоциативный" массив
Primary tabs
Forums:
Как таковых ассоциативных массивов в Java нет, но есть такая вот конструкция:
Map< String, String > map = new HashMap< String, String >();
map.put("name", "demo");
map.put("fname", "fdemo");
// и так далее
map.get("name"); // пример извлечения результата - получим слово "demo"Проверить, что элемент существует
Если в качестве значения вы не храните null, то вполне можно использовать такой вот код:
Foo value = map.get(key); // пытаемся обратиться по ключу
if (value != null) { // проверяем - не получили ли мы null
... // получили что-то другое - значит значение есть! =)
} else {
// такого значения нет
}Если же вы всё же храните null - то можно начать с той же проверки, а в случае, если получен null - дополнительно проверить ключ:
Foo value = map.get(key);
if (value != null) {
... // есть определённое значение по данному ключу -всё нормально
} else {
// получили null - теперь уточним значение ключа (есть ли вообще такой ключ)
if (map.containsKey(key)) {
// ключ есть, но значение по нему = null
} else {
// такого ключа нет!
}
}
Примитивные (простые) типы и коллекция
Обратите внимание, что следующая строка "работать" не будет:
Map< String, int > map = new HashMap < String, int >();
Дело в том, что простые типы в коллекции использовать нельзя - ключ или значение, обязательно должны быть "объектного" типа, в нашем же случае ситуацию можно поправить таким образом:
Map< String, Integer > map = new HashMap < String, Integer >();
- Log in to post comments
- 21360 reads