这是我到目前为止的代码,它删除所有重复项的所有第一个实例,但是如果我重复执行一个以上的元素,它将仅删除第一个实例,并将该元素的其余实例保留在列表中。

//remove all duplicate items from list.
// if list is null or empty leave it unchanged

public static <T extends Comparable<? super T>>
        void deleteReps(LinkedList<T> list)
{
   for (int i = 0; i < list.size(); i++)
    {
        T item = list.get(i);
        for(int j = i + 1; j < list.size(); j++)
        {
            if(item == null && list.get(j) == item || item != null && item.equals(list.get(j)))
            {
                list.remove(j);
            }
        }
    }
}

最佳答案

按照Eran的回答,我建议您使用Iterator迭代列表,因为它消除了对手动索引的需求,并且还允许在迭代列表时删除项目。

09-11 18:37
查看更多