Coletor Java 8 para Tabela Imutável de Goiaba

Caso de uso:
Lista de processos de string via método que retornaImmutableTable do tipo{R,C,V}. Por exemploImmutableTable of {Integer,String,Boolean} process(String item){...}

Coletar o resultado, mesclar todos os resultados e retornarImmutableTable. Existe uma maneira de conseguir isso?

Implementação atual (como sugerido por Bohemian):

Que tal usar fluxo paralelo? Há algum problema de simultaneidade no código abaixo? Com o fluxo paralelo, obtendo "NullPointerException no índice 1800" em tableBuilder.build (), mas funciona bem com o fluxo.

ImmutableTable<Integer, String, Boolean> 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(); }

Enquanto o código abaixo funciona muito bem com fluxo, bem como fluxo paralelo. Mas ImmutableBuild está falhando devido à entrada duplicada para linha e col. Qual poderia ser a melhor maneira de evitar duplicatas ao mesclar tabelas?

public static <R, C, V> Collector<ImmutableTable<R, C, V>,     
ImmutableTable.Builder<R, C, V>, ImmutableTable<R, C, V>>   
toImmutableTable() 
{ 
return Collector.of(ImmutableTable.Builder::new, 
ImmutableTable.Builder::putAll, (builder1, builder2) -> 
builder1.putAll(builder2.build()), ImmutableTable.Builder::build); }

Editar: se houver alguma entrada duplicada no ImmutableTable.Builder ao mesclar tabelas diferentes, ela falhará,

Tentando evitar o erro, colocando ImmutableTables em HashBasedTable

  ImmutableTable.copyOf(itemListToProcess.parallelStream()
            .map(itemString ->
           ProcessorInstanceProvider.get()
                    .buildImmutableTable(itemString))
                    .collect(
                            Collector.of(
                                    HashBasedTable::create,
                                    HashBasedTable::putAll,
                                    (a, b) -> {
                                        a.putAll(b);
                                        return a;
                                    }));
  )

Mas estou recebendo a exceção de tempo de execução "Causada por: java.lang.IllegalAccessError: tentou acessar a classe com.google.common.collect.AbstractTable".

Como podemos usar o HashBasedTable como Accumulator para coletar ImmutablesTables, pois o HashBasedTable substitui a entrada existente pela mais recente e não falha se tentarmos colocar uma entrada duplicada e retornar a tabela Imutável agregada.

questionAnswers(3)

yourAnswerToTheQuestion