java中迭代器与对循环的优劣势有哪些

  

java中迭代器与对循环的优劣势有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1。概念理解

的循环:是支持迭代的一种通用结构,是最有效,最灵活的循环结构

迭代器:是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的

Foreach:通过阅读源码我们还发现一个Iterable接口。它包含了一个产生迭代器对象的iterator()方法,而且将迭代器对象被Foreach用来在序列中移动。对于任何实现Iterable接口的对象都可以使用。

2。效率实例

ArrayList中的效率对比:

List, integers =, Lists.newArrayList ();   ,,,(int  i=0; i<100000;我+ +){   ,,,,,integers.add(我);   ,,,}   ,,,long  start1 =, System.currentTimeMillis ();   ,,,(int  count =0, count<10;计数+ +){   ,,,,,,(int 我=0;i< integers.size();我+ +){   ,,,,,,,int  j=integers.get(我);   ,,,,,}   ,,,}   ,,,System.out.println (String.format(“为循环100次时间:% s  ms", System.currentTimeMillis () -start1));   ,,,long  start2 =, System.currentTimeMillis ();   ,,,(int  count =0, count<10;计数+ +),{   ,,,,,for  (Integer 小姐::,整数),{   ,,,,,,,int  j =,我;   ,,,,,}   ,,,}   ,,,System.out.println (String.format (“foreach循环100次时间:% s  ms", System.currentTimeMillis () -start2));   ,,,long  start3 =, System.currentTimeMillis ();   ,,,(int  count =0, count<10;计数+ +),{   ,,,,,Iterator, iterator =, integers.iterator ();   ,,,,,,(iterator.hasNext ()) {   ,,,,,,,int  j=iterator.next ();   ,,,,,}   ,,,}   ,,,System.out.println (String.format(“迭代器循环100次时间:% s  ms", System.currentTimeMillis () -start3));

结果:

的循环100次时间:15 ms

foreach循环100次时间:25 ms

迭代器循环100次时间:20 ms

知识点扩展:

增强的循环:foreach

在Java 5.0提供了一种新的迭代访问集合和数组的方法,就是foreach循环。使用foreach循环执行遍历操作不需获取收集或数组的长度,也不需要使用索引访问元素。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

java中迭代器与对循环的优劣势有哪些