码迷,mamicode.com
首页 > 其他好文 > 详细

Iterator和List的一些问题

时间:2017-08-29 14:35:32      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:线性时间   link   ext   iterator   线性   rem   增强   一个   利用   

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来确定。相当于不会直接在末尾插入了,可以选择性插入。
 

Iterator和List的一些问题

标签:线性时间   link   ext   iterator   线性   rem   增强   一个   利用   

原文地址:http://www.cnblogs.com/anzhi/p/7447705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!