是否可能使用Java8在一行中编写以下内容,并进行所有空值和空字符串检查?
Map<Integer, Map<String, Object>> data = new HashMap<>(holdings.rowMap());
Set<Entry<Integer, Map<String, Object>>> entrySet = data.entrySet();
double transactedQuantity = 0;
for (Entry<Integer, Map<String, Object>> entry : entrySet) {
Map<String, Object> value = entry.getValue();
Object qty = value.get("quantity");
if (qty != null && qty != "") {
transactedQuantity += Double.valueOf(qty.toString());
}
}
类似以下内容
data.values().stream().filter((k,v) -> k.equals("quantity") && v != null && v != "").flatMapToDouble(...);
data.values() .stream() .map(valueMap -> valueMap.get("quantity"))
替换data.entrySet().stream() .map(e -> e.getValue().get("quantity"))
。 - Naman