Java 的map()函数是Stream类中的一个方法,它表示函数式编程概念。具体来说,map()通过应用于函数将一个对象转换为另一个对象。这就是Stream.map(函数映射器)将函数作为参数的原因。
您只需要一个映射函数将一个对象转换为另一个对象,然后,map()函数将为您进行转换。它也是一个中间Stream操作,这意味着您可以调用其他Stream方法,如过滤器,或者在此处收集以创建一系列转换。
现在,来进入过滤方法,它会根据您给出的条件过滤元素。过滤方法会根据您提供的条件选择元素,这就是过滤器(Predicate条件)接受Predicate对象的原因,它提供了一个应用于条件的函数。
如果条件的计算结果为true,则选择该对象。否则,它将被忽略。与map类似,过滤器也是一个中间操作,这意味着您可以在调用过滤器后调用其他Stream方法。filter()方法也是惰性的,这意味着在调用reduce方法之前不会对它进行求值,它会在到达目标时立即停止。
具体示例:
以下通过target终点找到其对应的边,并且将边source起点和weight权值的对应关系返回。
public Map<String, Integer> sources(String target) {
return edges.stream()
.filter(edge -> edge.getTarget().equals(target))
.collect(Collectors.toMap(Edge::getSource, Edge::getWeight));
}
更多请参照:
https://baijiahao.baidu.com/s?id=1619746019234645261&wfr=spider&for=pc