Iterando forma circular

Necesito iterar a través de una Lista pero de forma circular. También necesito agregar nuevos elementos a la lista e iterar sobre todos los elementos (elementos antiguos y nuevos), ¿cómo lo hago? ¿Hay alguna estructura de datos para ellos?