Java基础之Iterable接口

2020-02-21  本文已影响0人  懂码哥

说明:

源码:

package java.lang;

import java.util.Iterator;
import java.util.Objects;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.function.Consumer;

public interface Iterable<T> {
    
    /**
     * iterator为Java中的迭代器对象,是能够对List这样的集合进行迭代遍历的底层依赖。
     * 而iterable接口里定义了返回iterator的方法,相当于对iterator的封装,
     * 同时实现了iterable接口的类可以支持for each循环
     */
    Iterator<T> iterator();

  
    /**
     * 对Iterable中的元素进行指定的操作
     * java8中forEach()方法是为了方便遍历并操作集合内的元素
     */
    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

     /**
     * java8返回一个内部元素为T类型的并行迭代器
     * spliterator()方法则提供了一个可以并行遍历元素的迭代器,以适应现在cpu多核时代并行遍历的需求。
     */
    default Spliterator<T> spliterator() {
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }
}

注:

上一篇下一篇

猜你喜欢

热点阅读