我想删除链接列表java中两个选定元素之间的所有元素我已尝试使用此代码但它不起作用..任何建议!?
public <t> static void removeAtRange( int element1 ,
int element2 ) {
while ( i >= element1 && i < element2 && i < length.size()) {
if (length.get(i)== element1) {
Length.remove(i);
} else {
i++;
}
}
}
答案 0 :(得分:0)
创建新的LinkedList可能会更好,并在其中放置旧列表中的第一个和最后一个元素。如果此解决方案不适合您,请使用迭代器替换循环。然后,您可以使用以下命令删除元素:
iterator.remove();
答案 1 :(得分:0)
你想要完成这样的事吗?目前,您只删除索引为element1
的元素。
public static void removeRange(List<?> list, int start, int end)
{
if (end > list.size() || start < 0) {
throw new IndexOutOfBoundsException();
}
for (int x = start; x < end; x++) {
list.remove(x);
}
return list;
}
答案 2 :(得分:0)
这将删除给定索引之间的所有元素
public static void removeAtRange( int indexFrom , int indexTo ) {
// TODO: Might be good to check these are valid indices in the linked list
ArrayList toRemove = new ArrayList();
for(int i = indexFrom+1; i< indexTo; i++){
toRemove.add(ll.get(i));
}
ll.removeAll(toRemove); // remove all these from linkedlist
System.out.println("After removing from =["+ indexFrom +"] to = ["+ indexTo +"] ll is =["+ ll.toString() +"]");
}