美文网首页
Java基础之Iterable接口

Java基础之Iterable接口

作者: 懂码哥 | 来源:发表于2020-02-21 15:17 被阅读0次

说明:

  • Iterable接口是Java集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素。

源码:

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);
    }
}

注:

  • Java8新加了default关键字,被其修饰的方法可以不必由子类实现,并且由dafault修饰的方法在接口中有方法体。

相关文章

  • 面试篇:JAVA基础

    1. Java基础数据类型 2. Java容器 2.1 Iterable 接口 Iterable是一个超级接口,被...

  • Java基础之Iterable接口

    说明: Iterable接口是Java集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素。 源码:...

  • Java中迭代器的实现

    //首先,你的自定义类要实现Iterable接口(java.long.Iterable)① //Iterable接...

  • java.util.Collection

    super interfaces:java.util.Iterable Collection接口是java集合框架...

  • Collection接口

    java中的java.util.Collection接口是集合的顶级接口,继承了Iterable接口,jdk中并没...

  • Java集合【3】——— iterable接口详解

    iterable接口 整个接口框架关系如下(来自百度百科): iterable接口其实是java集合大家庭的最顶级...

  • Collection接口

    Interface Collection 接口 在java.util包中,实现了Iterable接口 实现Coll...

  • Java Collection接口

    Collection是一个接口,其继承了Java迭代器接口Iterable,是高度抽象来的集合,是单列集合的根接口...

  • 泛型(待补充)

    泛型:参数化类型,对数据类型进行安检。 1.接口,可参考java.lang.Iterable,java.util....

  • java 集合类

    * Iterable 迭代器接口,是Collection类的父接口。 实现这个Iterable接口的对象允许使用f...

网友评论

      本文标题:Java基础之Iterable接口

      本文链接:https://www.haomeiwen.com/subject/ojmcqhtx.html