amd*_*lal 4 java-8 java-stream
我们试图将下面的代码重构为java 8:
List<String> list = new ArrayList<>();
Iterator<Obj> i = x.iterator();
while (i.hasNext()) {
String y = m(i.next().getKey());
if (y != null) {
list.add(y);
}
}
return list;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我们已经提出:
return x.stream().filter(s -> m(s.getKey()) != null).map(t -> m(t.getKey())).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
但是这个方法m()
在这里被调用了两次.有什么办法吗?
Flo*_*own 13
那么你可以在映射步骤后进行过滤:
x.stream().map(s -> m(s.getKey())).filter(Objects::nonNull).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1219 次 |
最近记录: |