Hamza Afzal
Hamza Afzal

Reputation: 33

How can I convert the following data into LOOP

I am trying to convert the following into loop but whatever I tried all in vain I want someone help me to convert this type of data into loop.

ArrayList<String> parentList = new ArrayList<>();
        ArrayList<ArrayList> childListHolder = new ArrayList<>();

        parentList.add("Parent1");
        parentList.add("Parent2");
        parentList.add("Parent3");

        ArrayList<String> childNameList = new ArrayList<>();
        childNameList.add("Child1");
        childNameList.add("Child2");
        childNameList.add("Child3");

        childListHolder.add(childNameList);

        childNameList = new ArrayList<>();
        childNameList.add("Child4");
        childNameList.add("Child5");
        childNameList.add("Child6");

        childListHolder.add(childNameList);

        childNameList = new ArrayList<>();
        childNameList.add("Child7");
        childNameList.add("Child8");
        childNameList.add("Child9");

        childListHolder.add(childNameList);

Upvotes: 0

Views: 50

Answers (2)

forpas
forpas

Reputation: 164064

The equivalent of your code with loops is this:

ArrayList<String> parentList = new ArrayList<>();
ArrayList<ArrayList> childListHolder = new ArrayList<>();

for (int i = 1; i <= 3; i++) {
    parentList.add("Parent" + i);

    ArrayList<String> childNameList = new ArrayList<>();
    for (int j = 1; j <= 3; j++) {
        childNameList.add("Child" + (3 * (i - 1) + j));
    }
    childListHolder.add(childNameList);
}

Upvotes: 0

Elliott Frisch
Elliott Frisch

Reputation: 201399

No need for loop(s) here, also don't use ArrayList as a raw-type and prefer the List interface. Use Arrays.asList(T...) to generate your List(s). Like,

List<List<String>> childListHolder = new ArrayList<>();
List<String> parentList = Arrays.asList("Fruits & Vegetables", 
        "Beverages & Health", "Home & Kitchen");
childListHolder.add(Arrays.asList("Apple", "Mango", "Banana"));
childListHolder.add(Arrays.asList("Red bull", "Maa", "Horlicks"));
childListHolder.add(Arrays.asList("Knife", "Vessels", "Spoons"));

Upvotes: 1

Related Questions