Cita: le coloque sr.getNombre() , para que me muestre el nombre de cada serivcio de la consulta, pero es solamente para verificar que si me resive correctamente el objeto, antes de agregarlo,, y efectiva mente me retorna siempre el objeto deseado,,
Sí, pero tú haces la búsqueda del servicio por el Ide ¿y si el nombre es distinto pero el Ide es el mismo en todos? Por eso te digo que lo compruebes.
Los arraylist empiezan en 0, por lo que no entiendo que busques en el índice 2 (elemento 3), y entiendo menos que te devuelva algo.