【发布时间】:2019-04-25 11:06:16
【问题描述】:
我正在尝试从我的 LinkedHashMap 中过滤掉不必要的空值。但是它实际上并没有删除这些值。
变量声明
Map<String,Object> dataDictionary = new LinkedHashMap<>();
使用过滤器方法后我 sysout.print(dataDictionary) 时返回的一小部分内容。
[industryCodes=<null>,regionCodes=<null>,andKeywords=false,id=
<null>,resultsPerPage=20,keywords=<null>,omitKeywords=<null>}
Java 代码
dataDictionary= dataDictionary.entrySet()
.stream()
.filter(entry -> entry.getValue()!=null)
.collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue));
希望删除空值及其键,但这似乎没有发生。
【问题讨论】:
-
你必须提供一些我们可以测试的东西,因为它是不可能回答的......来自你的
value的一些individial属性是空的,但是不是价值本身,是吗? -
这不是
null的打印方式,所以我猜这是一个覆盖toString的实例,它打印一个变量null,而实例本身不是。
标签: java java-8 java-stream linkedhashmap