Tag: immutable collections

Guava不可变表的Java 8收集器

使用案例: 通过返回类型为{R,C,V} ImmutableTable的方法的进程列表。 例如ImmutableTable of {Integer,String,Boolean} process(String item){…} 收集结果,即合并所有结果并返回ImmutableTable 。 有没有办法实现它? 目前的实施(波希米亚建议): 如何使用并行流? 以下代码中是否存在并发问题? 使用Parallel流我在tableBuilder.build()上得到“索引1800处的NullPointerException”,但是对于流工作正常。 ImmutableTable buildData() { // list of 4 AwsS3KeyName listToProcess.parallelStream() //Create new instance via Guice dependency injection .map(s3KeyName -> ProcessorInstanceProvider.get() .fetchAndBuild(s3KeyName)) .forEach(tableBuilder::putAll); return tableBuilder.build(); } 虽然下面的代码非常适合流和并行流。 但是由于row和col的重复输入,ImmutableBuild失败了。 什么是在合并表时防止重复的最佳方法? public static Collector<ImmutableTable, ImmutableTable.Builder, ImmutableTable> toImmutableTable() { return Collector.of(ImmutableTable.Builder::new, ImmutableTable.Builder::putAll, (builder1, builder2) -> […]