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来确定。相当于不会直接在末尾插入了,可以选择性插入。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出,
原文链接
如有问题, 可邮件(zxy.hope@gmail.com)咨询.