我有一个清单:
List<Object> myList = new ArrayList<Object>();
要从此列表中获取,有两种方法:
1。
for(Object obj : myList ) { // some code }
2。
Iterator<Object> objIt = myList.iterator(); while(obj.hasNext()) { Object obj = (Object)objIt.next(); // some code }
我的问题是,哪一个内存效率高且迭代速度快?
他们做同样的事情- 增强的for循环对于长版本来说只是语法糖(对于可迭代对象;对于数组,它稍有不同)。除非您明确需要迭代器(例如,调用remove()),否则我将使用第一个版本。
for
remove()
有关编译器执行的准确转换的更多详细信息,请参见Java语言规范的14.14.2节。