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

从通用列表中删除项目java?,java,iterator,Java,Iterator,我需要从java中的通用列表中删除一个项,但我不知道如何做。如果它是一个int列表,我会将它设置为零,如果它是字符串,我会将它设置为null。如何使用泛型列表执行此操作,而我不能使用Arraylist的方法或类似的方法,我必须自己编写此方法。您可以使用删除单个对象实例,也可以使用删除特定索引中的特定实例。您还可以在迭代列表时调用。例如,要从列表中删除每个项目,您可以执行以下操作 Iterator<?> iter = list.iterator(); while (iter.hasNe

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

您可以使用删除单个对象实例,也可以使用删除特定索引中的特定实例。您还可以在迭代
列表时调用。例如,要从
列表中删除每个项目,您可以执行以下操作

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

我认为,如果您自己实现一个列表,您应该将删除的元素后的所有元素向下移动一个位置,将最后一个设置为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;
    }
公共对象删除(int-remove\u索引){
对象临时=列表[删除索引];

对于(int i=remove_index;i
static List remove)(不删除元素的列表,将其设置为“默认状态”。您的意图是什么?此外,所有对对象的引用都可以设置为null。不仅仅是对字符串的引用。为了进一步说明JB Nizet所说的,列表中的任何内容都是对对象的引用,而不是基元。它不是int的列表,而是整数的列表,假设您确实首先使用list/genericsFirst,如果a有
int
的列表,并且I add
0
在您的场景中会发生什么?第二,什么类型的列表?链接的?支持数组的?您到底在问什么?如果您要实现一个列表,您可以通过在它后面覆盖元素来删除该元素…我不能使用Arraylist的方法或类似的方法,我必须编写该方法myself@JBNizet那就不可能了e不使用ArrayList的“方法”(上面示例中使用的唯一列表/可编辑方法是
iterator
),因为即使
get
,都是禁止的。也就是说,考虑到“需求”,使用iterator的示例似乎足够/合理.我觉得OP必须实现一个通用列表,带有一个删除方法。但问题很不清楚。
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;
}