Discuss / Java / 为什么List可以直接使用iterator方法呢?

为什么List可以直接使用iterator方法呢?

Topic source

永恒Saber

#1 Created at ... [Delete] [Delete and Lock User]

老师,我有一段代码弄不明白

我在ArrayList中找到了一个内部类

public Iterator<E> iterator() {
    return new Itr();
}

下面这段代码可以理解

List<A> list = new ArrayList<>();list.add(new A("1"));list.add(new A("2"));list.add(new A("3"));Iterator<A> itr = list.iterator();while(itr.hasNext()){  System.out.println(itr.next());}

而下面的就不能理解了

List<Integer> list = List.of(1, 2, 3);
Iterator<Integer> it = list.iterator();
while(it.hasNext()){
  System.out.println(it.next());
}

我看源码List并没有覆写iterator的方法为什么还能直接使用像hasNext() next()功能呢?

ifulee

#2 Created at ... [Delete] [Delete and Lock User]

List.of 返回的是一个 ImmutableCollections 集合实现了  实现 Iterable 接口


  • 1

Reply