日期:2014-05-20  浏览次数:20816 次

【新手求助】关于ListIterator的问题
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为何迭代不到呢?
好像只有在下一次迭代才可以,求解!!!

------解决方案--------------------
首先楼主代码写错了。
其次以后发代码放在发代码的地方:
例如
Java code

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());
        }
    }

------解决方案--------------------
public static void main(String[] args) {

List books = new ArrayList();

books.add(new String("java"));
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);



}
}
这样不久达到你的效果了
------解决方案--------------------
lit.add("---------");
要加个计数器 也就是对这个进行控制 不然不但的加------------又不但的输出 死循环