You can pass an ArrayList<E> the same way, if the E type is Serializable/Parcelable.
You would call the putExtra (String name, Serializable value) of Intent to store, and getSerializableExtra (String name) for retrieval.
Example:
ArrayList<ArrayList<String>> myList = new ArrayList<ArrayList<String>>();
intent.putExtra("mylist", myList);
In the other Activity:
ArrayList<ArrayList<String>> myList = (ArrayList<ArrayList<String>>) getIntent().getSerializableExtra("mylist");
or
ArrayList<ArrayList<String>> myList = new ArrayList<ArrayList<String>>();
intent.putParcelableArrayListExtra("mylist", myList);
ArrayList<ArrayList<String>> myList = (ArrayList<ArrayList<String>>) getIntent().getParcelableArrayListExtra("mylist");