【发布时间】:2017-06-20 19:01:19
【问题描述】:
为什么stream.count() 不返回int?
我知道我可以通过强制转换轻松地将 long 转换为 int,
return (int) players.stream().filter(Player::isActive).count();
但是为什么 java stream.count() 会返回 long 而不是 int?
【问题讨论】:
-
如果您可以轻松地将足够小的 long 转换为 int,而不是从溢出的 int 转换回 long,为什么它要返回 int?
-
当你处理流时,通常它会非常大,因此是流的原因。如果数字很大,将 long 转换为 int 将失去精度。
-
因为
long比int长
标签: java java-8 java-stream