Iterator对于数据封装提供了更高的灵活性,但性能上绝对不是优势.因为接口越向上,灵活性越高,反之性能也越降低,这是必然的,假如接口越向上性能越高哪白痴还用它的子类啊.JAVA数据结构中要想考虑性能第一,当然是数组.只有它才是直接访问元素的指针(JAVA的引用),别的数据结构,要想灵活和性能兼顾,ArrayList是首选.只考虑灵活性当然是Iterator,Collection这些项层接口了.Vector是效率最低的.
要看效率,主要看数据结构遍历节点(元素)方法,Iterator的遍历是next()方法,这是JAVA的可怜之处,因为JAVA的指针不是指向元素本身,而是指向元素中间,最初是指向每一元素之前比如・●・●・●・●・●・大点代表元素,最先指向第一个小点,next()时指针指到第二小点,就返回刚才指针跳过的这个元素,即使你不用这个元素,也要POP出来。也就是要重新开空间生成这个对象。然后再回收这个对象,Iterator根本谈不上效率。