我有下面的代码,我想删除'空'值时,打印或保存在一个文件中。
有时候我不需要给变量传递任何值。所以,在这种情况下,我需要打印键,但是不需要任何'null'。我该怎么做呢?
我必须使用LinkedListMultimap
,因为我可能有重复的键,并希望保持进入Map的顺序。
public static void main(String[] args) {
Multimap<String, String> data = LinkedListMultimap.create();
data.put("NAME", getName());
data.put("AGE", getAge());
data.put("DEPARTMENT", getDepartment());
data.forEach((key, value) -> System.out.println("[" + key + "]" + " " + value));
}
电流输出:
[NAME] Joe
[AGE] 25
[DEPARTMENT] null
预期产出:
[NAME] Joe
[AGE] 25
[DEPARTMENT]
2条答案
按热度按时间lymnna711#
我想在打印或保存到文件中时删除
null
值在集合中存储和保留
null
没有任何意义(*null
-表示没有数据,它不能给予任何有用的信息 *),它是一个反模式。要从Map中删除
null
值,请使用removeIf()
对值集合执行批量删除。与用标准map获取集合值一样,可以使用
values()
方法。如文档中所指定的,它返回一个覆盖map值的 * 视图 *,而不是一个独立的集合。并且对它所做的所有更改,都将反映在map中。对返回集合的更改将更新基础多Map,反之亦然。
这就是它可以做到的。
4dbbbstv2#
您可以使用ternary operator: