es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer una lista dentro de otra lista en Java?

Supongamos que tengo una tabla MySql:

Número | Cuadrado

2 | 4

3 | 9

4 | 16

5 | 25

En mi aplicación de Java, esto es lo que tengo hasta ahora:

List<integer> finalList = fetchStuff();
log.info(desiredList);

private List<integer> fetchStuff() {
  List<integer> listToReturn = new ArrayList<integer>();
  List<nombredeclase> desiredList = desiredListRepo.findAll();
  for (NombreDeClase nombreDeClase : desiredList) {
       listToReturn.add(nombreDeClase.getNumero());
       listToReturn.add(nombreDeClase.getNumeroCuadrado());
  }
  return listToReturn;
}

Cuando imprimo desiredList, este es el resultado que quiero ver:

[[2, 4], [3, 9], [4, 16], [5, 25]]

Pero actualmente estoy viendo:

[2,4,3,9,4,16,5,25]

¿Qué estoy haciendo mal?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Estás agregando tanto el número como su valor al cuadrado a la lista “ToReturn” en el bucle “for”. En su lugar, deberías crear una lista separada para contener cada fila de la lista deseada, agregar el número y su valor al cuadrado a esa lista, y luego agregar esa lista a la lista “ToReturn”. Así es como debería lucir el código actualizado:

    private List<><integer>> fetchStuff() {
      List<><integer>> listToReturn = new ArrayList<>();
      List<nombredelaclase> desiredList = desiredListRepo.findAll();
      for (NombreDeLaClase nombreDeLaClase : desiredList) {
           List<integer> row = new ArrayList<>();
           row.add(nombreDeLaClase.getNumero());
           row.add(nombreDeLaClase.getNumeroAlCuadrado());
           listToReturn.add(row);
      }
      return listToReturn;
    }
    

    Esto creará una lista de listas, donde cada lista anidada representa una fila en la lista deseada con el número y su valor al cuadrado como sus elementos.

Comments are closed.