Java 对集合集合求和的最佳性能方法

Java 对集合集合求和的最佳性能方法,java,java-8,java-stream,Java,Java 8,Java Stream,假设我有一个名为“cities”(class City)的集合,集合中的每个项目都有一个成员“streets”(class Street),我希望迭代所有城市,并计算集合中的街道总数 使用流进行操作的最佳方法是什么,同时避免许多不必要的操作(取消装箱、冗余计算等)这是一个非常简单的流操作,根本没有装箱。您尝试过什么,或者您只是希望我们为您编写代码?我只是不知道如何在每个子集合上进行迭代。为什么您假设streams=最佳性能?以旧的方式进行迭代真的更好吗?Collectiosn不应该太大,但是几十

假设我有一个名为“cities”(class City)的集合,集合中的每个项目都有一个成员“streets”(class Street),我希望迭代所有城市,并计算集合中的街道总数


使用流进行操作的最佳方法是什么,同时避免许多不必要的操作(取消装箱、冗余计算等)

这是一个非常简单的流操作,根本没有装箱。您尝试过什么,或者您只是希望我们为您编写代码?我只是不知道如何在每个子集合上进行迭代。为什么您假设streams=最佳性能?以旧的方式进行迭代真的更好吗?Collectiosn不应该太大,但是几十个(也许几百个)项目序列流通常不会让您获得更好的性能,但它可以让您获得更干净的代码,这是您通常应该追求的目标。它是一个非常简单的流操作,根本没有装箱。您尝试过什么,或者您只是希望我们为您编写代码?我只是不知道如何在每个子集合上进行迭代。为什么您假设streams=最佳性能?以旧的方式进行迭代真的更好吗?Collectiosn不应该很大,但是几十个(也许几百个)的项目序列流通常不会让您获得更好的性能,但它可以让您获得更干净的代码,这是您通常应该追求的。为什么要计算街道?计算街道收藏的数量不是更快吗?@Andreas比我快了一秒钟:)为什么要数街道?总结街道收藏的规模不是更快吗?@Andreas比我快了一秒钟:)
int streetCount = cities
        .stream()
        .map(City::getStreets)
        .mapToInt(Collection::size)
        .sum();