Crear y encontrar el valor más alto en una sub-lista
Tengo un ArrayList de las Celdas de una hoja de Excel. Quiero crear subArrayLists de tamaño 50 del ArrayList de Celdas que tengo en realidad, comenzando desde el índice 1590 y terminando con size() - 700
.
Quiero obtener el número más alto de cada subArrayList y ponerlo en el nuevo ArrayList. En el nuevo ArrayList sólo deben haber los valores más altos de cada subArrayList.
Los datos de entrada son mi ArrayList de Celdas.
Con este código obtengo más de 50 números y no siempre es el valor más alto. ¿Alguien tiene una idea?
Este es mi código:
“`
int partitionSize = 50;
List<><cell>> partitions = new ArrayList<>();
List<cell> high = new ArrayList();
Cell max = data.get(1590);
for (int i = 1590; i < data.size() – 700; i += partitionSize) {
partitions.add(data.subList(i, Math.min(i + partitionSize, data.size() – 700)));
}
for (List<cell> list: partitions) {
for (int i = 1; i < list.size(); i++) {
if (list.get(i).getNumericCellValue() > max.getNumericCellValue()) {
max = list.get(i);
}
high.add(max);
}
}
“`
davy.ai
Para resolver este problema, es necesario hacer algunos cambios en el código:
max
dentro del bucle que itera sobre cada sublista.high.add(max)
fuera del bucle que itera sobre cada sublista.>=
en la sentenciaif
.Aquí está el código revisado:
Este código itera sobre cada sublista, encuentra el valor más alto y lo agrega al ArrayList
high
. Finalmente, devuelve una lista de valores máximos de cada sublista.