问题一:ListIterator i = lname.listIterator(); 这一句,应该放在加入元素之后;
问题二:你只产生了一个name对象,所以LinkedList全部放的都是那一个name对象,那个对象的成员fn当然是一样的了,你最后一次改变那个name对象的时候,m为9,所以该name对象的fn为9。所以返回的记过是10个fname9。

解决方案 »

  1.   

    for(int m=0;m<10;m++){
    name.fn="fname"+m;
             LinkedList lname = new LinkedList();//把前面的那句,挪到这
    lname.add(name);
    }
      

  2.   

    获得迭代器后,如果又结构性改变(这里就是add),迭代器就会抛出这个异常.
      

  3.   

    第二个问题好无聊:
    Name name=new Name();

    for(int m=0;m<10;m++){
    name.fn="fname"+m;
    lname.add(name);
    }
    这样一个name加入了10次
    改为:for(int m=0;m<10;m++){
             Name name=new Name();
    name.fn="fname"+m;
    lname.add(name);
    }
      

  4.   

    for(int m=0;m<10;m++){
             Name name=new Name();
    name.fn="fname"+m;
    lname.add(name);
    }这样了不浪费资源吗??
    我就是想实现一套数据类,然后放在Vector或者ArrayList或者LinkedList。因为觉得使用大数组不是很好。这三个哪个比较好?!
      

  5.   

    真是服了你了,根本没有可以浪费的资源呀,一般使用ArrayList,删除比较频繁时使用LinkedList
    基本不怎么使用Vector
      

  6.   

    >>>>Name name=new Name();
    for(int m=0;m<10;m++){
             
    name.fn="fname"+m;
    lname.add(name);
    }
    实际上这样的话,你往LinkedList中添加了10个引用,它们都指向了一个相同的Name对象.如果你不相信的话,你可以System.out.println(lname),你可以看到它们有着相同的内存地址(Name@XXXX,XXXX为地址).