Java Iterable与Iterator

it2024-08-10  37

iterator是接口Iterable的一个方法。

public interface Iterable<T> { Iterator<T> iterator(); default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } default Spliterator<T> spliterator() { return Spliterators.spliteratorUnknownSize(iterator(), 0); } } List接口继承Collection接口,Collection接口继承Iterable接口。 ```java public interface List<E> extends Collection<E> { ... } public interface Collection<E> extends Iterable<E> { ... } for each循环内部也是依赖于Iterator迭代器 ```java for (int i : list) { System.out.println(i); }

反编译后

int i; for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(i)){ i = (Integer)iterator.next(); }

List中实现

List list = new ArrayList(); list.add(1); list.add("123"); Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
最新回复(0)