Un List o ArrayList es fácil de recorrer con un foreach, cuando el tipo que mapea no es indefinido, por ejemplo:
El problema es cuando no podemos hacer ese foreach, porque no se puede hacer un foreach (en términos generales) de un List<?>, así que lo habría que hacer es lo siguiente, en un ejemplo:
Y listo.