Estou desenvolvendo uma aplicação web que deve processar uma lista de itens, onde para cada item é necessário invocar uma URL que retorna um JSON, interpretar esse JSON e armazenar o resultado em um atributo do item.
Até o momento, devido a pequena quantidade de itens na lista a ser processada, era possível realizar o processo proceduralmente:
public ArrayList<E> processar(ArrayList<E> arrayList) {
// TODO processar cada item do ArrayList
return arrayList;
}Devido ao crescimento exponencial da quantidade de itens na lista a ser processada, realizar o processo proceduralmente se tornou inviável. Logo, pensei em dividir a lista em partes menores, processar paralelamente as partes e unir o resultado:
public ArrayList<E> processar(ArrayList<E> arrayList) {
// TODO dividir ArrayList, processar paralelamente as partes e unir o resultado de todas as partes
return arrayList;
}Entretanto, ainda não consegui imaginar como eu poderia implementar essa técnica e devido a isso, gostaria de receber sugestões de como implementá-la e/ou até mesmo sugestões de outras técnicas que possam ser uteis para resolver o meu problema.
