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. 是否可以直接在lambda表达式中获取int值? 解决方法
不,您不能将对toIntExact的调用适合您的方法调用链,即流管道.这是因为count是一个终端操作并返回一个长的原语,在该原语上没有方法调用.终端操作是结束流管道并产生结果(或副作用)的操作.
所以我相信你能做的最好的事情就是忍受已有的代码.恕我直言,没关系. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |