Reputation: 33
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
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
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