加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – lambda表达式里面的Math.toIntExact?

发布时间:2020-12-15 01:59:23 所属栏目:Java 来源:网络整理
导读:我正在学习lambda表达式. 给定一个名称列表,我想计算以N开头的名字数. 我这样做了: final static ListString friends = Arrays.asList("Brian","Nate","Neal","Raju","Sara","Scott");public static int countFriendsStartWithN() { return Math.toIntExact
我正在学习lambda表达式.
给定一个名称列表,我想计算以N开头的名字数.

我这样做了:

final static List<String> friends = Arrays.asList("Brian","Nate","Neal","Raju","Sara","Scott");

public static int countFriendsStartWithN() {
    return  Math.toIntExact(friends
            .stream()
            .filter(name -> name.startsWith("N"))
            .count());
}

对count方法的调用返回一个原语long,但我想要一个int.
我使用Math.toIntExact将long值作为int.

是否可以直接在lambda表达式中获取int值?

解决方法

不,您不能将对toIntExact的调用适合您的方法调用链,即流管道.这是因为count是一个终端操作并返回一个长的原语,在该原语上没有方法调用.终端操作是结束流管道并产生结果(或副作用)的操作.

所以我相信你能做的最好的事情就是忍受已有的代码.恕我直言,没关系.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读