从通用列表java中删除项目?

时间:2014-10-25 22:15:59

标签: java iterator

我需要从java中的通用列表中删除一个项目,但我不知道如何执行此操作。如果它是一个int列表,我只想将它设置为零,如果它是字符串我会将它设置为null。我如何使用通用列表执行此操作,并且我无法使用Arraylist或类似的方法,我必须自己编写该方法。

3 个答案:

答案 0 :(得分:1)

您可以使用List.remove(Object)删除单个对象实例,也可以使用List.remove(int)从特定索引中删除特定实例。您也可以在迭代List时调用Iterator.remove()。因此,例如,要删除List中您可以执行的所有项目

Iterator<?> iter = list.iterator();
while (iter.hasNext()) {
  iter.remove();
}

答案 1 :(得分:0)

我认为如果你自己实现一个列表,你应该在删除一个位置的元素之后移动所有元素,将最后一个元素设置为null,如果你要跟踪列表的大小,请减少这是一个。像这样的东西

    public Object remove(int remove_index){
        Object temp = list[remove_index];
        for(int i=remove_index;i<size-1;i++){
            list[i] = list[i+1];
        }
        list[--size] = null;
        return temp;
    }

答案 2 :(得分:0)

static <T> List<T> remove(List<? extends T> inputList, int removeIndex)
{
    List<T> result = new ArrayList<T>( inputList.size() - 1 );

    for (int i = 0 ; i < inputList.size() ; i++)
    {
        if ( i != removeIndex )
        {
            result.add( inputList.get(i) );
        }   
    }

    return result;
}