我来提个关于Iterator的小问题

    
zhaoxf
05-03-04 3 441

大家都说要用Iterator来遍历数据,以屏蔽不同的集合类实现,如果不考虑这个目的的话,用Iterator和集合类自身提供的方法有什么性能上的差异吗?
我一般用ArrayList来保存数据,用get(n)的方法来取得元素,对于ArrayList来说是不是应该比Iterator方式快一些呀?
对于遍历方式的选择有什么要注意的呢?

banq
2005-03-04 11:36

有过测试,get(n)的方法比iterator性能要差,你自己可以做个小测试,不推荐使用get(n)来操作List。 改用HashMap

hgwnet
2005-03-11 09:46

看看源代码就知道了嘛。list.get(x)先作判断再取值,这多出来的判断就要浪费时间。一般还是不要用arrayList,建议用原生的数组来存储数据,至于要iterator还是要synchronize再自行实现,这样性能、安全都有保证。

codefad
2005-03-15 17:23

象Iterator和ArrayList如果仅仅是遍历,那效率的差异在目前的硬件条件下已经是微小的几乎可以忽略。