P229 第四版
创建一个空的LinkedList<Integer>,通过使用ListIterator,将若干个Integer插入这个List中,插入时,总是将它们插入到List的中间。
我有点想不通,如果题目没有“通过使用ListIterator”,那解决起来反而好办多了,先add,再插入的时候再用带索引参数的add就OK了,如果如题目的话,我就不知道怎么搞了,大家有经验的话,说说你们怎么想的////

解决方案 »

  1.   

    不用ListIterator,而用Iterator的add只能把新元素加到末尾,而listIterator却可以在中间加入新元素。可以用Iterator带索引参数的add,但是因为这里是LinkedList,由于是用链表的数据结构实现的,带索引的添加或者找寻的方法都是不推荐的,当数据少的时候效率还行,一旦数据多了,那种带索引的方法将是非常的不效率。因为本来linkedlist的结构就不是按照索引的。如果你要是用arraylist,用带索引的add添加就效率了,因为arraylist是用数组实现的,本来就有索引。
      

  2.   


    ListIterator好像没有现成的在中间插入元素的方法,我刚才查了下API文档,你可不可以具体下用哪个方法,谢谢。。
      

  3.   

    不好意思,我没有说清楚,listIterator的add方法是,先用listiterator遍历数据,比如说执行了几次next,跑到了list的中间,这时候用listIterator的add方法就可以把数据插在迭代器现在位置的前面。而Iterator的add就只能在list的尾部添加新元素
      

  4.   


    那我觉得还不如用不用listiterator,呵呵,这道题目不咋的。