1 class SimpleLoop {
 2     Object[] elements;
 3 
 4     class Iterator {
 5         int idx = 0;
 6 
 7         Object next() {
 8             return elements[idx++];
 9         }
10     }
11 
12     Iterator iterator() {
13         return new Iterator();
14     }
15 
16     // based on java.util.ImmutableCollections$SetN::toArray
17     Object[] toArray(int size) {
18         Object[] array = new Object[size];
19         Iterator it = iterator();
20         for (int i = 0; i < size; i++) { array[i] = it.next(); }
21         return array;
22     }
23 
24     public static void main(String[] args) {
25         SimpleLoop kase = new SimpleLoop();
26 
27         int sz = 1024;
28         kase.elements = new Object[sz];
29         for (int i=0; i< sz; ++i ) kase.elements[i] = new Object();
30 
31         Object[] results = null;
32         for (int i = 0; i < 1_000_000; ++i) {
33             results = kase.toArray(24);
34         }
35 
36         for (int i =0; i< 24; ++i) {
37             if (results[i] != kase.elements[i]) {
38                 throw new RuntimeException("wong answser at " + i);
39             }
40         }
41     }
42 
43 }