ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java:迭代集合的最佳方式(此处为ArrayList)

2019-09-25 22:00:33  阅读:177  来源: 互联网

标签:java collections for-loop


今天,当我得到一段已经使用过数百次的代码时,我很乐意编写代码:

Iterating through a Collection (here ArrayList)

出于某种原因,我实际上看了Eclipse的自动完成选项,它让我想知道:

以下循环比其他循环更好用?

经典数组索引循环:

for (int i = 0; i < collection.length; i++) {
  type array_element = collection.get(index);
}

Iterator hasNext()/ next():

for (Iterator iterator = collection.iterator(); iterator.hasNext();) {
  type type = (type) iterator.next();   
}

我最喜欢的,因为它写得如此简单:

for (iterable_type iterable_element : collection) {

}

解决方法:

当你需要元素的索引时,第一个是有用的.这基本上等同于ArrayLists的其他两个变体,但如果使用LinkedList则会非常慢.

当您不需要元素的索引但在迭代时可能需要删除元素时,第二个是有用的.但这样做的缺点是IMO有点过于冗长.

第三个版本也是我的首选.它很短,适用于您不需要任何索引或底层迭代器的所有情况(即您只访问元素,不删除它们或以任何方式修改Collection – 这是最常见的情况).

标签:java,collections,for-loop
来源: https://codeday.me/bug/20190925/1817208.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有