class Test{
public static void main(String[] args) {
List books=new ArrayList();
books.add(new String("java"));
books.add(new String("android"));
ListIterator lit=books.listIterator();
while(lit.hasNext())
{
System.out.println(lit.next());
lit.add("-----");
}
}
} 按道理应该是java,-----,android,-----,-----这样一直循环下去。
但lit似乎直接忽略了add()的操作,我知道"-----"肯定存储在books中了,但lit为何迭代不到呢?
好像只有在下一次迭代才可以,求解!!!
public static void main(String[] args) {
List books=new ArrayList();
books.add(new String("java"));
books.add(new String("android"));
ListIterator lit=books.listIterator();
while(lit.hasNext())
{
System.out.println(lit.next());
lit.add("-----");
}
}
} 按道理应该是java,-----,android,-----,-----这样一直循环下去。
但lit似乎直接忽略了add()的操作,我知道"-----"肯定存储在books中了,但lit为何迭代不到呢?
好像只有在下一次迭代才可以,求解!!!
其次以后发代码放在发代码的地方:
例如public static void main(String[] args) {
List books = new ArrayList();
books.add(new String("java"));
books.add(new String("android"));
ListIterator ite = books.listIterator();
while(ite.hasNext()){
System.out.println(ite.next());
ite.add("----------");
}
while(ite.hasNext()){
System.out.println(ite.next());
}
}
你看你的add是add在哪里的?
就算是books.add();的。那么也是add在books中的。
这时候程序已经运行到了循环这里,lit变量里面存的是books之前的元素?还能懂吗?
PS:对于C++ STL迭代器的行为就是动态更新的
books.add(new String("android"));
int i = 1;
ListIterator lit = books.listIterator();
while (lit.hasNext()) {
System.out.println(lit.next());
lit.add("-----");
++i;
lit = books.listIterator(i);
}
}
这样不久达到你的效果了
要加个计数器 也就是对这个进行控制 不然不但的加------------又不但的输出 死循环