Home > Mobile >  How do I make a List within a list in it in Java?
How do I make a List within a list in it in Java?

Time:01-06

Lets assume I have a MySql table:

Number | Squared

2 | 4

3 | 9

4 | 16

5 | 25

In my Java application, this is what I have so far:

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

private List<Integer> fetchStuff() {
  List<Integer> listToReturn = new ArrayList<Integer>();
  List<NameOfClass> desiredList = desiredListRepo.findAll();
  for (NameOfClass nameOfClass : desiredList) {
       listToReturn.add(nameOfClass.getNumber());
       listToReturn.add(nameOfClass.getSquaredNumber());
  }
  return listToReturn;
}

When I print desiredList, this is the output that I want to see: [[2, 4], [3, 9], [4, 16], [5, 25]] But currently, I'm seeing: [2,4,3,9,4,16,5,25]. What am I doing wrong?

CodePudding user response:

List<Integer> is a List of Integers. You want a List<List<Integer>>, a list of lists of integers. This works like the following:

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

private List<List<Integer>> fetchStuff() {
  List<List<Integer>> listToReturn = new ArrayList<>();
  List<NameOfClass> desiredList = desiredListRepo.findAll();
  for (NameOfClass nameOfClass : desiredList) {
       List<Integer> inner=new ArrayList<>();
       inner.add(nameOfClass.getNumber());
       inner.add(nameOfClass.getSquaredNumber());
       listToReturn.add(inner);
  }
  return listToReturn;
} 

If you want to have a List of pairs of numbers, you can use Map.Entry:

List<Map.Entry<Integer>> finalList = fetchStuff();
log.info(desiredList);

private List<Map.Entry<Integer, Integer>> fetchStuff() {
  List<Map.Entry<Integer>> listToReturn = new ArrayList<>();
  List<NameOfClass> desiredList = desiredListRepo.findAll();
  for (NameOfClass nameOfClass : desiredList) {
       inner.add(nameOfClass.getNumber());
       inner.add(nameOfClass.getSquaredNumber());
       listToReturn.add(Map.entry(desiredList.getNumber(), desiredList. getSquaredNumber()));
  }
  return listToReturn;
} 
  •  Tags:  
  • Related