黑马程序员技术交流社区
标题:
不能完全删除集中的元素,求解。
[打印本页]
作者:
黄嵘才
时间:
2012-12-19 17:44
标题:
不能完全删除集中的元素,求解。
本帖最后由 esirong 于 2012-12-20 12:55 编辑
public class Test {
public static void main(String[] args) {
List<String> list = new LinkedList<String>();
list.add("A");
list.add("B");
list.add("C");
for(int i=0; i<list.size(); i++){
list.remove(i);
}
for(String item:list){
System.out.println(item);
}
}
}
复制代码
我在网看到这个程序,这个循环删除不能完全
这里,还有会输出B.
那么B为什么没有被删除掉啊。大侠帮帮我解一下。
作者:
崔政
时间:
2012-12-19 20:08
你从索引尾数删除试试,你删除了0,那么集合的长度就变成2了。而不是3.
然后又删除索引1,那么,C也没了,所以B删除不掉。
你试试这个
public static void main(String[] args) {
List<String> list = new LinkedList<String>();
list.add("A");
list.add("B");
list.add("C");
for(int i=list.size()-1; i>=0; i--){
System.out.println(i+" "+list.remove(i));
}
for(String item:list){
System.out.println(item);
}
}
复制代码
作者:
孙辉辉
时间:
2012-12-19 21:18
就像楼上说的那样,主要还是你没有理解好
public void remove(int position)从此滚动列表中移除指定位置处的项。如果选中了指定位置的项,并且该项是列表中惟一选中的项,则列表将被设置为无选择。
参数:
position - 要删除项的索引
抛出:
ArrayIndexOutOfBoundsException - 如果 position 小于零或大于 getItemCount()-1
删除后集合长度会减少的。
代码也可以在这样,每次就删除0位置的,
public static void main(String[] args) {
List<String> list = new LinkedList<String>();
list.add("A");
list.add("B");
list.add("C");
int length = list.size();//集合原始长度
for(int i=0; i<length; i++){
list.remove(0);
}
for(String item:list){
System.out.println(item);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2