Вот способ, который не влияет на упорядочение списка:
ArrayList l1 = new ArrayList();
ArrayList l2 = new ArrayList();
Iterator iterator = l1.iterator();
while (iterator.hasNext())
{
YourClass o = (YourClass) iterator.next();
if(!l2.contains(o)) l2.add(o);
}
l1 является исходным списком, а l2 - списком без повторных элементов (убедитесь, что у YourClass есть метод equals, соответствующий тому, что вы хотите стоять за равенство)