我经常看到如下代码:
Iterator i = list.iterator();
while(i.hasNext()) {
...
}
Run Code Online (Sandbox Code Playgroud)
但我写的是(当Java 1.5不可用或者每个都不能使用时):
for(Iterator i = list.iterator(); i.hasNext(); ) {
...
}
Run Code Online (Sandbox Code Playgroud)
因为
i在较小的范围内i外面使用?i声明在哪里?)我认为代码应该尽可能简单易懂,这样我才能制作复杂的代码来完成复杂的事情.你怎么看?哪个更好?
我刚刚了解了Java Collections Framework如何在链表中实现数据结构.根据我的理解,这Iterators是一种遍历数据结构(如列表)中的项目的方法.为什么使用这个界面?为什么这些方法hasNext(),next()而remove()不是直接编码到数据结构实现本身?
从Java网站:链接文本
public interface Iterator <E>
集合上的迭代器.Iterator取代了Java集合框架中的Enumeration.迭代器在两个方面与枚举不同:
此接口是Java Collections Framework的成员.
- 迭代器允许调用者在迭代期间使用定义良好的语义从底层集合中删除元素.
- 方法名称已得到改进.
我试着用Google搜索,似乎无法找到明确的答案.有人可以解释为什么Sun选择使用它们吗?是因为更好的设计?增加安全性?好的OO练习?
任何帮助将不胜感激.谢谢.