Agregar un registro de desaparecidos en el ArrayList si no es en ella

vlina:

Perdóneme que a mí todo un principiante en la codificación. He tratado de investigar la manera de agregar algún tipo de registro que faltan en las listas, pero todavía parece que no puede encajar correctamente en mi código.

Tengo dos ArrayLists con diferentes conjuntos de resultados. Say, el primero se deriva en otro método y se almacena en abcList. Esta lista se utiliza entonces en mi método fixChartStats actual como un parámetro.

En mi código, voy a comprobar el registro correspondiente en abcList con la segunda lista que se derivan de la consulta HQL en el método fixChartStats.

Si corresponde el registro, a continuación, voy a hacer las medidas necesarias, como se muestra a continuación para actualizar el número ApprovedCount etc, de lo contrario me puse a 0.

¿Cómo hago para agregar los registros que faltan en segunda lista entré en el primer ArrayList (es decir abcList)? ¿Alguien puede arrojar algo de luz aquí? Hágamelo saber si mis preguntas no son claras. Gracias de antemano, chicos!

private void fixChartStats(List<TAbcModel> abcList, Map<String, Object> param, List<IssueModel> issueList, List<DestModel> destList) throws Exception {

    //initialize the hql query
    //translate all fields from Object[] into individual variable

    firstRow = true;
    for (TAbcModel abc : abcList) {
        if (abc.getId().getAbcYear() = abcYear &&
                abc.getId().getAbcMonthId() = abcMonthId &&
                abc.getId().getAbcApplAccnId().getAccnId().equalsIgnoreCase(abcApplAccnId.getAccnId()) {

            if (firstRow) {
                abc.setApprovedCount(abcApprovedCount);
                abc.setCancelledCount(abcCancelledCount);
                firstRow = false;
            } else {
                abc.setApprovedCount(0);
                abc.setCancelledCount(0);
            }
        }else{
            // How to do the necessary here
            // Below is what I've tried
            abcList.add(abc);
        }
    }
}

Cuando elimino errores, me di cuenta de que se añadió a la lista. Sin embargo, poco después de que se añadió, ConcurrentModificationException fue arrojado.

Joakim Danielson:

Crear una lista local y agregar registros que faltan para que luego añadir todos los elementos de la lista local al abcList

List<TAbcModel> temp = new ArrayList<>();

en su bucle:

} else { 
    temp.add(abc);
}

después de bucle

abcList.addAll(temp);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=199169&siteId=1
Recomendado
Clasificación