java - 将 Java-8 Stream 收集到 Guava ImmutableList 的最佳方式

标签 java java-8 guava java-stream

我想将一个流放入一个不可变的列表中。以下方法之间有什么区别,从性能角度来看哪种方法更好?

  1. collect( Collectors.collectingAndThen(Collectors.toList(), ImmutableList::copyOf));

  2. ImmutableList.copyOf( stream.iterator() );

  3. collect( Collector.of( ImmutableList.Builder<Path>::new, ImmutableList.Builder<Path>::add, (l, r) -> l.addAll(r.build()), ImmutableList.Builder<Path>::build) );

性能或效率的更多参数,

  1. 列表/集合中可能有很多条目。

  2. 如果我想使用中间操作对集合进行排序怎么办 ".sorted()"使用自定义比较器。

  3. 因此,如果我添加 .parallel() 会怎么样?到流

最佳答案

对于系统性能,您需要对其进行测量。

为了编程性能,用最清晰的方式。单从外观上来说,我最喜欢第二种,而且我看不出有明显的效率低下。

关于java - 将 Java-8 Stream 收集到 Guava ImmutableList 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26873475/

相关文章:

java - 如何在没有过滤器的情况下调用 guava 谓词?

Java 更改卷 OSX

java - LWJGL 3 鼠标移动

java - 尝试使图像随机移动但它没有移动

java - NLP新手,关于注解的问题

Java 8 Streams在过滤map后获取原始对象

java - 在映射中查找枚举值以初始化列表

java - 如何在 Kotlin 或 Java 中对排序列表进行集合操作?

Java List<Map<String, Long>> 映射键的分组总和

java - 为什么 Guava 的 Cache.invalidate(Object key) 方法不是通用的?