Iterator和List的一些问题

1、iterator是有remove方法的,并且在使用iterator的过程中,不能自行调用collection的增删改方法
而可以利用iterator的remove方法来删除。
2、list就是一个表,ArrayList是一个单链表,LinkedList是一个双链表;
3、
  add(T value) add(T value,index) get(index) remove 增强for
ArrayList O(1) O(N) O(1) N N
LinkedList O(1) O(1) O(N) N N
说明 两者都直接从表的末尾插入,所以是线性时间。 array在前端添加是一个O(N)操作,需要把整体向后移动 link对get的操作是O(N)的时间    
 
4、使用Iterator遍历的过程中,调用iterator的remove方法是非常高效的。
     但是这个remove方法,移除的是当前next方法指向的元素位置。所以在使用前,应该掉用过next方法。
5、ListIterator方法:add方法的插入位置,根据next和previous来确定。相当于不会直接在末尾插入了,可以选择性插入。
 
posted @ 2017-08-29 12:40  赵安之  阅读(193)  评论(0编辑  收藏  举报