关于ArrayList和Iterator的问题!(急!请高人们尽快给与答复...) SOS!!!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一、ArrayList按照我的理解它应该是一个单链表,具有头元素,能动态的分配内存,不知我的想法对不对,请给与明确的答案!!!还有,它有没有尾元素??如果既有头元素和尾元素,那么它又是怎么能动态的分配内存的?按照我的想法头尾都确定了长度也应该确定了才对呀!!ArrayList不是链表,就是一个数组,当大小不够时就生成一个新得数组。可以参到:http://blog.csdn.net/treeroot/archive/2004/09/16/107041.aspx二、哪位高人能介绍一下Iterator的特点!!!谢谢了,各位!方便,可以不用考虑内部实现。 ArrayList 是用 Array 来实现的 List,默认会分配一个大小的数组,当存储满的时候,会分配一个新的更大的数组,将原来的内容拷贝过去,再继续存。如果你需要用链接实现的List,可以用LinkedList。Iterator 的特点就是你只能用它来进行遍历,而且用 Iterator 来遍历会限制你对原数据的操作,因为你只可以顺序的取值出来,不可以存入或者其它修改原数据的操作,(但是 Iterator 提供了 remove 方法,虽然没怎么用,但是还是觉得这个方法有背于 iterator 的本意)。具体可以参考一下设计模式的 Iterator 模式它的另外一个作用是提供了一种数据接口,Collection 的东西好像都可以取 Iterator 的吧,那么,以后你需要取值的时候只需要要求一个 Iterator 即可,完全不必去管这个 Iterator 中的数据是来自 List 或者 Set 或者 Map 或者其它。 map不能实现iterator接口,因为map不是由collection继承下来的!其他由collection继承下来的类都可以使用iterator接口!不过treeMap好象也能支持iterator map 是分 key 和 value 的两个集合,分别由 keySet 和 values 来取得。这两个都可以取 iterator 的treemap 也一样,它不应该有 iterator,只可能分 keySet().iterator()和 values().iterator() ArrayList 动态变大变小iterator 允许双向遍历 (hasNxt()向下 hasPrevious()向上) iterator 允许双向遍历 (hasNxt()向下 hasPrevious()向上)-----------------------------iterator只允许单向遍历ListIterator才是双向遍历 关于Collections Framework,《Core Java 2 Volume2》里有详细介绍 SWT做一个可以插入图片的编辑器的思路? 查询数据 如何通过mysql数据库中存储的用户名密码做一个登陆界面 为伊消得人憔悴,衣带渐宽终不悔 一个关于java.lang.nullException的问题 有人说 "用static修饰的变量和方法叫类变量和类方法"的说发不对,真的吗 我的java为什么不能用啊?急! 如何对Jlist和Jcombobox赋初始值,jb中Jlist和Jcombobox没有类似Items的属性吗 查询结果返回结果集还是集合? 用JCreator开发Java项目到底怎样? 谁的方法好 System.arraycopy的用法(在线等待)
可以参到:http://blog.csdn.net/treeroot/archive/2004/09/16/107041.aspx二、哪位高人能介绍一下Iterator的特点!!!
谢谢了,各位!
方便,可以不用考虑内部实现。
它的另外一个作用是提供了一种数据接口,Collection 的东西好像都可以取 Iterator 的吧,那么,以后你需要取值的时候只需要要求一个 Iterator 即可,完全不必去管这个 Iterator 中的数据是来自 List 或者 Set 或者 Map 或者其它。
这两个都可以取 iterator 的treemap 也一样,它不应该有 iterator,只可能分 keySet().iterator()和 values().iterator()
iterator 允许双向遍历 (hasNxt()向下 hasPrevious()向上)
-----------------------------iterator只允许单向遍历
ListIterator才是双向遍历