两种方法的结果相同,这是最佳实践。我是java的新蜜蜂。我对stream.map和stream.filter
有点困惑List<String> alpha =
Arrays.asList("a", "b", "csddddddddddd",
"d", "ssdddddddddd", "sw", "we", "wew");
// Java 8
List<String> collect = alpha.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
List<Integer> collect2 = alpha.stream()
.map(s -> s.length())
.collect(Collectors.toList());
List<Integer> collect3 = collect2.stream()
.filter(s -> s > 10)
.collect(Collectors.toList());
List<Integer> collect4 = collect2.stream()
.map(s -> {
Integer temp = 0;
if (s > 10) {
temp = s;
}
return temp;
})
.filter(s -> s > 10)
.collect(Collectors.toList());
两个List的结果相同:
[13, 12]
[13, 12]
什么是最好的方法。在这方面,最好的方法是什么。
答案 0 :(得分:3)
如果您想按某种条件过滤Stream
的元素(即删除不满足条件的元素),请使用filter
,而不是map
。
map
的目的是将一种类型的元素转换为另一种类型的元素。
您在collect3
和collect4
中获得相同结果的唯一原因是,在map
中应用collect4
后,您应用了一个过滤器,该过滤器将删除所有0
map
由.map(s ->{ Integer temp = 0;if(s>10) {temp=s;} return temp;})
生成的1}}。
整个var oField = sap.ui.getCore().byId('IdOfTheFieldAtTheDialog');
var sValue = oField.getValue();
电话是多余的。这是编写代码的一种非常难以理解和低效的方式。