То, что вы делаете, совершенно не нужно.Для удаления всех значений null
достаточно:
dataDictionary.values().removeIf(Objects::isNull);
Нет необходимости в потоках и т. П.
Редактировать: Вот код, который я тестировал:
Map<String,Object> dataDictionary = new LinkedHashMap<>();
dataDictionary.put("industryCodes", null);
dataDictionary.put("regionCodes", "test");
dataDictionary.put("omitKeywords", null);
dataDictionary.put("resultsPerPage", 21);
dataDictionary.values().removeIf(Objects::isNull);
System.out.println(dataDictionary);
Вывод: {regionCodes=test, resultsPerPage=21}
С закомментированной строкой removeIf
я получаю: {industryCodes=null, regionCodes=test, omitKeywords=null, resultsPerPage=21}
Кажется, что работает для меня.
Может быть, что-то не так с вашими значениями, и они на самом деле не равны нулю?
Edit2: Как предполагает Holger, до Java 8 вы можете использовать следующее:
dataDictionary.values().removeAll(Collections.singleton(null));