资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

关于ArrayList和Iterator的问题!(急!请高人们尽快给与答复...)

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

一、ArrayList按照我的理解它应该是一个单链表,具有头元素,能动态的分配内存,不知我的想法对不对,请给与明确的答案!!!还有,它有没有尾元素??如果既有头元素和尾元素,那么它又是怎么能动态的分配内存的?按照我的想法头尾都确定了长度也应该确定了才对呀!!  
   
  二、哪位高人能介绍一下Iterator的特点!!!  
  谢谢了,各位!!  
 

网友回答:

发表者:treeroot

一、ArrayList按照我的理解它应该是一个单链表,具有头元素,能动态的分配内存,不知我的想法对不对,请给与明确的答案!!!还有,它有没有尾元素??如果既有头元素和尾元素,那么它又是怎么能动态的分配内存的?按照我的想法头尾都确定了长度也应该确定了才对呀!!  
   
  ArrayList不是链表,就是一个数组,当大小不够时就生成一个新得数组。  
  可以参到:http://blog.csdn.net/treeroot/archive/2004/09/16/107041.aspx  
   
  二、哪位高人能介绍一下Iterator的特点!!!  
  谢谢了,各位!  
  方便,可以不用考虑内部实现。

发表者:jamesfancy

ArrayList   是用   Array   来实现的   List,默认会分配一个大小的数组,当存储满的时候,会分配一个新的更大的数组,将原来的内容拷贝过去,再继续存。如果你需要用链接实现的List,可以用LinkedList。  
   
  Iterator   的特点就是你只能用它来进行遍历,而且用   Iterator   来遍历会限制你对原数据的操作,因为你只可以顺序的取值出来,不可以存入或者其它修改原数据的操作,(但是   Iterator   提供了   remove   方法,虽然没怎么用,但是还是觉得这个方法有背于   iterator   的本意)。具体可以参考一下设计模式的   Iterator   模式  
  它的另外一个作用是提供了一种数据接口,Collection   的东西好像都可以取   Iterator   的吧,那么,以后你需要取值的时候只需要要求一个   Iterator   即可,完全不必去管这个   Iterator   中的数据是来自   List   或者   Set   或者   Map   或者其它。

发表者:xyz20003

map不能实现iterator接口,因为map不是由collection继承下来的!其他由collection继承下来的类都可以使用iterator接口!不过treeMap好象也能支持iterator

发表者:jamesfancy

map   是分   key   和   value   的两个集合,分别由   keySet   和   values   来取得。  
  这两个都可以取   iterator   的  
   
  treemap   也一样,它不应该有   iterator,只可能分   keySet().iterator()和   values().iterator()

发表者:HSK007

ArrayList   动态变大变小  
  iterator   允许双向遍历   (hasNxt()向下   hasPrevious()向上)

发表者:zcjl

iterator   允许双向遍历   (hasNxt()向下   hasPrevious()向上)  
  -----------------------------  
   
  iterator只允许单向遍历  
  ListIterator才是双向遍历

发表者:zcjl

关于Collections   Framework,《Core   Java   2   Volume2》里有详细介绍


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved