当前位置: 代码迷 >> 综合 >> Java1.8源码解析-Iterable和Iterator
  详细解决方案

Java1.8源码解析-Iterable和Iterator

热度:26   发布时间:2023-12-16 09:21:40.0

Iterable

package java.lang;import java.util.Iterator; import java.util.Objects; import java.util.Spliterator; import java.util.Spliterators; import java.util.function.Consumer;//实现此接口允许对象成为“for-each loop”语句的目标 public interface Iterable<T> {//返回类型为 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);} }

Iterator

package java.util;import java.util.function.Consumer;public interface Iterator<E> {//如果迭代具有更多的元素,则返回true boolean hasNext();//返回迭代中的下一个元素E next();//从底层集合中删除此迭代器返回的最后一个元素default void remove() {throw new UnsupportedOperationException("remove");}//对每个剩余元素执行给定的操作,直到所有元素都被处理或动作引发异常default void forEachRemaining(Consumer<? super E> action) {Objects.requireNonNull(action);while (hasNext())action.accept(next());}
}
  相关解决方案