JDK源码分析模板

第1部分 …介绍

1.1 …简介
1
2
1.2 …构造函数

修饰语和返回类型 方法 描述
Iterator<T> iterator() 返回类型为T的迭代器
default Spliterator<T> spliterator() 创建返回类型为T的可分割迭代器
default void forEach(Consumer<? super T> action) 迭代元素,执行消费器的accept方法

1.3 …常用API

修饰语和返回类型 方法 描述
Iterator<T> iterator() 返回类型为T的迭代器
default Spliterator<T> spliterator() 创建返回类型为T的可分割迭代器
default void forEach(Consumer<? super T> action) 迭代元素,执行消费器的accept方法

第2部分 …数据结构

2.1 …的继承关系

java.lang.Object
   ↳     java.util.AbstractCollection<E>
         ↳     java.util.AbstractList<E>
               ↳     java.util.ArrayList<E>

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable {}

2.2 …的关系图
图片描述
图1 …的关系图

第3部分 …源码解析(基于JDK-8u201)

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

第4部分 …使用示例

发布了16 篇原创文章 · 获赞 0 · 访问量 291

猜你喜欢

转载自blog.csdn.net/kubiderenya/article/details/105267911