Table of Contents
In this posts, we will see how to create a list of lists in java.
You can easily create a list of lists using below syntax
or
ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();
One of the Usecase
This is generally useful when you are trying to read a CSV file and then you need to handle list of lists to get it in memory, perform some processing and write back to another CSV file.
Let’s take a simple example for list of lists.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package org.arpit.java2blog; import java.util.ArrayList; import java.util.List; public class JavaListOfListsMain { public static void main(String[] args) { List<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>(); ArrayList<String> list1 = new ArrayList<String>(); list1.add("Delhi"); list1.add("Mumbai"); listOfLists.add(list1); ArrayList<String> anotherList = new ArrayList<String>(); anotherList.add("Beijing"); anotherList.add("Shanghai"); listOfLists.add(anotherList); listOfLists.forEach((list) -> { list.forEach((city)->System.out.println(city)); } ); } } |
When you run above program, you will get below output.
Mumbai
Beijing
Shanghai
Question on list of lists
Can you instantiate List as below
1 2 3 |
List<List<String>> myList = new ArrayList<ArrayList<String>>(); |
Let’s understand the reason for it.
Let’s say you have list as below:
1 2 3 |
ArrayList<ArrayList<String>> list1 = new ArrayList<ArrayList<String>>(); |
Now suppose you could assign that to
1 2 3 |
List<List<String>> list2 = list1. |
Now, you should be able to do this:
1 2 3 |
list2.add(new LinkedList<String>()); |
But that means you have just added a
LinkedList to a list whose elements are supposed to be ArrayList only.That’s why it is not allowed to do it.
That’s all about how to create list of lists in java.