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
- 20938 reads