This can probably lead to confusing code down the road, and I would hope someone might have something better but you can try this:
ArrayList< ArrayList<String> > my_2dlist =
new ArrayList< ArrayList<String> >();
my_2dlist.add( new ArrayList<String>() );
my_2dlist.get(0).add("Hello, World");
System.out.println(my_2dlist.get(0).get(0));