Swa*_*ane 5 java iterator list arraylist
我有一个清单:
List<Object> myList = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)
要从此列表中获取,有两种方法:
1.
for(Object obj : myList )
{
// some code
}
Run Code Online (Sandbox Code Playgroud)
2.
Iterator<Object> objIt = myList.iterator();
while(obj.hasNext()) {
Object obj = (Object)objIt.next();
// some code
}
Run Code Online (Sandbox Code Playgroud)
我的问题是哪一个是内存效率和快速迭代?
Jon*_*eet 12
他们做同样的事情 - 增强的for
循环只是简写版本的语法糖(对于迭代;对于数组,它略有不同).除非你明确需要迭代器(例如调用remove()
),否则我会使用第一个版本.
有关编译器执行的确切转换的更多详细信息,请参阅Java语言规范的第14.14.2节.
使用 anIterator
提供了List
从定义外部更安全的访问,class
因为例如您不会意外覆盖整个List
。您一次只能访问一个元素:顶部的元素。
所以我们使用的指导方针是只for each
在定义类内部使用这种方法,每当需要从外部访问 List 时,都必须使用迭代器。这也强制了保持如何修改class
包含它的成员的逻辑的概念。外部需要的所有复杂操作都必须在public
内部的方法中实现class
。
归档时间: |
|
查看次数: |
5696 次 |
最近记录: |