如何在java8中执行多个链式操作?
我有一个用例如下
- ^来自mongo的{
} 对于每个
Document
获取字段
添加到集合中
更改字段
对照其他两组检查更改的字段
如果不存在,则转换为pojo
将pojo添加到列表中
我有以下几点
Optional.ofNullable(documentList).orElseGet(Collections::emptyList).forEach(doc -> {
// I am doing all the operations in java7 way
})
我的想法与下面类似
- 迭代文档列表-向集合中添加字段
- 迭代步骤1中的集合-检查其他两个集合中的
field
not contains-然后从原始文档中形成pojo-将pojo添加到列表中
但这里我需要重复两次。此外,我还需要维护我的原始文档。如果我的列表很大,那么不必要地增加迭代时间
我怎样才能以标准的方式做到这一点
documentList.forEach(doc -> {
String deviceId = doc.getString("deviceId");
deviceSet.add(deviceId);
String alteredId = "IMEI" + deviceId;
if(!clearedDevices.contains(alteredId) && !superSetDevices.contains(deviceId)) {
//Pojo from Document
//add pojo to a list
}
})
# 1 楼答案
这取决于相关领域的类型。如果它是一个可变对象,那么Java8流就是完美的。比如: