Home > Java > javaTutorial > Comparison of the pros and cons of iterators and for loops in Java

Comparison of the pros and cons of iterators and for loops in Java

WBOY
Release: 2023-04-22 14:28:09
forward
2005 people have browsed it

1. Conceptual understanding

for loop: It is a general structure that supports iteration and is the most effective and flexible loop structure

Iterator: It is obtained through the iterator() method of the collection, so we say that it exists dependent on the collection

Foreach: By reading the source code We also find an Iterable interface. It contains an iterator() method that generates an Iterator object, and the Iterator object is used by foreach to move in the sequence. Can be used for any object that implements the Iterable interface.

2. Efficiency example

Comparison of efficiency in ArrayList:

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

Result:

for循环100次时间:15 ms
foreach循环100次时间:25 ms
迭代器循环100次时间:20 ms
Copy after login

The efficiency of the three under ArrayList is almost the same , the for loop is optimal, because ArrayList is implemented through an array, and the time complexity of positioning the array through the index is O(1), and it can be located in one time, so the efficiency is very high.

Summary: The for loop facilitates access to sequentially stored records, while foreach and iterator facilitate access to linked storage.

The above is the detailed content of Comparison of the pros and cons of iterators and for loops in Java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template