Colector Java 8 para tabla inmutable de guayaba

Caso de uso:
Lista de procesos de cadena a través del método que devuelveImmutableTable de tipo{R,C,V}. Por ejemploImmutableTable of {Integer,String,Boolean} process(String item){...}

Recoja el resultado, es decir, combine todos los resultados y devuelvaImmutableTable. ¿Hay alguna manera de lograrlo?

Implementación actual (como lo sugiere Bohemian):

¿Qué tal el uso de flujo paralelo? ¿Hay algún problema de concurrencia en el siguiente código? Con Parallel stream, obtengo "NullPointerException at index 1800" en tableBuilder.build (), pero funciona bien con stream.

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(); }

Mientras que el siguiente código funciona muy bien con la transmisión y la transmisión paralela. Pero ImmutableBuild falla debido a una entrada duplicada para row y col. ¿Cuál podría ser la mejor manera de evitar duplicados al fusionar tablas?

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: si hay alguna entrada duplicada en ImmutableTable.Builder al fusionar diferentes tablas, entonces falla,

Tratando de evitar faluire poniendo ImmutableTables en 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;
                                    }));
  )

Pero recibo una excepción de tiempo de ejecución "Causado por: java.lang.IllegalAccessError: intenté acceder a la clase com.google.common.collect.AbstractTable".

¿Cómo podemos usar HashBasedTable como acumulador para recopilar ImmutablesTables, ya que HashBasedTable anula la entrada existente con la última y no falla si intentamos ingresar entradas duplicadas y devolver la tabla inmutable agregada?

Respuestas a la pregunta(3)

Su respuesta a la pregunta