黑马程序员技术交流社区
标题:
集合代码问题
[打印本页]
作者:
陈永波
时间:
2012-7-3 16:48
标题:
集合代码问题
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class IteratorDemo {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();
all.add("hello");
all.add("-");
all.add("world");
Iterator<String> iter = all.iterator();
while(iter.hasNext()){
String m = iter.next();
if("-".equals(m)){
all.remove(m);
}else{
System.out.print(m+","); // 为什么这里输出的不是: hello ,world
}
}
System.out.println("\n删除后的结果:"+all);
}
}
输出:hello, 删除之后的集合是:[hello,world]对这个有点不理解,删除之后直接退出循环?
作者:
唐辉辉
时间:
2012-7-3 22:40
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class Test1 {
public static void main(String[] args) {
List<String> all = new ArrayList<String>();
all.add("hello");
all.add("-");
all.add("world");
Iterator<String> iter = all.iterator();
while (iter.hasNext()) {
String m = iter.next();
if ("-".equals(m)) {
iter.remove();
} else {
System.out.print(m + ","); // 为什么这里输出的不是: hello ,world
}
}
System.out.println("\n删除后的结果:" + all);
}
}
复制代码
删除方法请不要调用 List 的,而应该调用 迭代器
Iterator 的 remove()方法。 如果调用List的,会把list中的元素删除,这样元素少了一个,后面的元素就会出现问题。
作者:
孔令金
时间:
2012-7-5 19:53
初始列表:
hello
-
world
第一次循环,指针指向0,输出hello,列表如下:
hello <---
-
world
第二次循环,指针指向1,删除“-”,列表如下:
hello
world <---
第三次循环,指针指向2,这时该位置已经没有元素了。
注意不要在遍历列表时对列表进行增删操作。
作者:
徐传任
时间:
2012-10-10 12:17
看看...........................
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2