Рассматривая этот вопрос, в котором вопросник заинтересован в первом и последнем экземплярах какого-либо элемента в List, кажется, более эффективное решение будет использовать DoubleLinkedList, который мог бы искать назад с конца списка. Однако в API коллекции есть только одна реализация, и она изменена.
Почему нет неизменяемой версии?