Я недавно учился, но я верю, что оригинальный пример с int [] выполняет итерацию по массиву примитивов, но не с использованием объекта Iterator. Он просто имеет один и тот же (похожий) синтаксис с разным содержимым,
for (primitive_type : array) { }
for (object_type : iterableObject) { }
Arrays.asList () APPARENTLY просто применяет методы List к заданному массиву объектов, но для любого другого типа объектов, включая примитивный массив, iterator (). Next () APPARENTLY просто вручает вам ссылку на оригинал объект, рассматривая его как список с одним элементом. Можем ли мы увидеть исходный код для этого? Вы бы не предпочли исключение? Не берите в голову. Я предполагаю (это УДОБНО), что это походит (или это ЕСТЬ) на одноэлементную Коллекцию. Так что здесь asList () не имеет отношения к случаю с массивом примитивов, но сбивает с толку. Я не ЗНАЮ, что я прав, но я написал программу, которая говорит, что я.
Таким образом, этот пример (где asList () в основном не выполняет то, что вы думали, и, следовательно, это не то, что вы на самом деле используете таким образом) - я надеюсь, что код работает лучше, чем моя маркировка как код и посмотрите на последнюю строчку:
// Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
import java.util.*;
public class Page0434Ex00Ver07 {
public static void main(String[] args) {
int[] ii = new int[4];
ii[0] = 2;
ii[1] = 3;
ii[2] = 5;
ii[3] = 7;
Arrays.asList(ii);
Iterator ai = Arrays.asList(ii).iterator();
int[] i2 = (int[]) ai.next();
for (int i : i2) {
System.out.println(i);
}
System.out.println(Arrays.asList(12345678).iterator().next());
}
}