public class ListRemove {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Short> s = new LinkedList<Short>();
for (Short i = 0; i < 100; i++) {
s.add(i);
s.remove((i - 1));
}
System.out.println(s.size());
}
}
List的remove方法有两个不同的参数!如下
[color=red]boolean remove(Object o)[/color]
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。如果列表不包含元素,则不更改列表。更确切地讲,移除满足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引 i 的元素(如果存在这样的元素)。如果此列表已包含指定元素(或者此列表由于调用而发生更改),则返回 true。
[color=red]remove(int index)[/color]移除列表中指定位置的元素(可选操作)。将所有的后续元素向左移动(将其索引减 1)。返回从列表中移除的元素。
参数:
index - 要移除的元素的索引
返回:
以前在指定位置的元素
抛出:
UnsupportedOperationException - 如果列表不支持 remove 操作
IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= size())
这里jvm用的第二个方法!也许我们想利用第一个方法
这时需要改下
s.remove(new Integer(i - 1));