Ну, чтобы ключи пришли туда без данных, вам нужно put
их там.
Если вы сделали map.put(key, null)
, тогда да, данные для этого ключа - null
.Вы всегда должны давать второй параметр методу, вы не можете просто map.put(key)
.
Если вы точно знаете, что определенный ключ не содержит данных, вы можете попробовать перейти в режим отладки и поставитьпосмотрите на myMap.get(myEmptyKey)
и посмотрите, что вы получите (в случае, если никакие данные не являются пустым объектом или чем-то еще, вы должны это увидеть).
Редактировать: Некоторый код будет полезен, чтобы помочь вам,но если я правильно понимаю, вы делаете что-то вроде этого:
for (Object obj : list) {
if (matchesCriteriaX(obj)) {
map.put("X", obj);
else if (matchesCriteriaY(obj)) {
map.put("Y", obj);
}
}
Хорошо, если вы делаете это и пытаетесь сделать map.get("X")
, но вы на самом деле никогда ничего не ставите для этого ключа (потому что объект не соответствует критериям X), вы определенно получите обратно null
.
С другой стороны, если вы сделали что-то вроде
Map<String, List<Object>> map = new HashMap<String, List<Object>>();
map.add("X", new ArrayList<Object>());
map.add("Y", new ArrayList<Object>());
for (Object obj : list) {
if (matchesCriteriaX(obj)) {
List<Object> list = map.get("X");
list.add(obj);
else if (matchesCriteriaY(obj)) {
List<Object> list = map.get("Y");
list.add(obj);
}
}
, то вы можете проверить, является ли категория пустой, выполнив map.get("x").isEmpty()
, поскольку у List есть этот метод (и он был бы пустым, если бы ни один объект не соответствовал ключевым критериям).