java Map-filter-collect

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值