Skip to content
Advertisement

The list is not filled

I am trying to nest data into a list, which I also add to another list. The challenge is to get a list of nested lists of data.

    String content1;
    String content2;

    ArrayList<ArrayList<String>> listData = new ArrayList<>();
    ArrayList<String> listDataOne = new ArrayList<>();

    for (int i = 0; i < 3; i++) {
        content1 = "one " + i;
        content2 = "two " + i;

        listDataOne.add(content1);
        listDataOne.add(content2);

        System.out.println(listDataOne);
        listData.add(listDataOne);
        System.out.println(listData); // [[one 2, two 2], [one 2, two 2], [one 2, two 2]]
        listDataOne.clear();
    }
    System.out.println(listData);  // [[], [], []]

But in the end, I get empty nested lists. What am I doing wrong?

Advertisement

Answer

At the end of your for loop you’re clearing listDataOne and since listData has the same list reference, it gets cleared too. You need to replace

listDataOne.clear();

with

listDataOne = new ArrayList<>();

to preserve data.

4 People found this is helpful
Advertisement