从通用列表中删除项目java?
我需要从java中的通用列表中删除一个项,但我不知道如何做。如果它是一个int列表,我会将它设置为零,如果它是字符串,我会将它设置为null。如何使用泛型列表执行此操作,而我不能使用Arraylist的方法或类似的方法,我必须自己编写此方法。您可以使用删除单个对象实例,也可以使用删除特定索引中的特定实例。您还可以在迭代从通用列表中删除项目java?,java,iterator,Java,Iterator,我需要从java中的通用列表中删除一个项,但我不知道如何做。如果它是一个int列表,我会将它设置为零,如果它是字符串,我会将它设置为null。如何使用泛型列表执行此操作,而我不能使用Arraylist的方法或类似的方法,我必须自己编写此方法。您可以使用删除单个对象实例,也可以使用删除特定索引中的特定实例。您还可以在迭代列表时调用。例如,要从列表中删除每个项目,您可以执行以下操作 Iterator<?> iter = list.iterator(); while (iter.hasNe
列表时调用。例如,要从列表中删除每个项目,您可以执行以下操作
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;istatic List remove)(不删除元素的列表,将其设置为“默认状态”。您的意图是什么?此外,所有对对象的引用都可以设置为null。不仅仅是对字符串的引用。为了进一步说明JB Nizet所说的,列表中的任何内容都是对对象的引用,而不是基元。它不是int的列表,而是整数的列表,假设您确实首先使用list/genericsFirst,如果a有int
的列表,并且I add0
在您的场景中会发生什么?第二,什么类型的列表?链接的?支持数组的?您到底在问什么?如果您要实现一个列表,您可以通过在它后面覆盖元素来删除该元素…我不能使用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;
}