【发布时间】:2020-02-05 06:22:33
【问题描述】:
在 coreValues 的映射包含以下内容的场景中: 值 1 -> 列表(“1”、“2”、null、“3”) 我想从列表中过滤掉空值,我有 以下解决方案:
boolean hasCoreValues = false;
Optional<Map<String,List<String>> coreValues = buildCoreValuesMap(core);
hasCoreValues = corevalues.map(cv -> {
final List<String> values = cv.getOrDefault(value, Immutable.of())
values.removeAll(singletonList(null));
return !values.isEmpty();
}).orElse(false);
public Optional<Map<String, List<String>>> buildCoreValuesMap(String core) {
return Optional.ofNullable(context.selectFrom(DataStorage)
.where(DataStorage.CORE.in(core))
.fetchGroups(DataStorage.CORE,
DataStorage.VALUES));
}
有没有更好的方法来做到这一点,而无需再次通过列表删除空值?
【问题讨论】:
-
values.removeAll(singletonList(null)) 我正在使用删除null的方法,它不是重复的问题。我的问题是如何在不重复两次的情况下删除 null。
-
你能把这个方法的代码给我
buildCoreValuesMap吗?
标签: java