Java之ArrayList源码分析(第八篇:四个内部类的基本介绍)

(注意:本文源码基于JDK1.8)

ArrayList内部定义的4个内部类,这4个内部类各自的用途是什么呢?本文将得到答案!

 

静态内部类ArrayListSpliterator

    static final class ArrayListSpliterator<E> implements Spliterator<E> {
         ………………省略代码……………
  }

ArrayListSpliterator是静态内部类,且不允许继承(final修饰),在ArrayList中的spliterator方法中返回的正是ArrayListSpliterator对象,每个ArrayListSpliterator表示ArrayList中实现的并发迭代器!

 

内部类Itr

    private class Itr implements Iterator<E> {
         …………省略很多代码…………
}

Itr作为ArrayList的普通内部类,Itr实现了Iterator接口,通过ArrayList的iterator()方法得到的是Itr对象,每个Itr对象表示顺序(线性)迭代器对象!

 

内部类ListItr

    private class ListItr extends Itr implements ListIterator<E> {
         …………省略很多代码…………
}

ListItr同样为ArrayList的普通内部类,它在Itr类的基础之上进行了扩展,我们通过调用ArrayList的listIterator()方法(共计两个重载方法)就可以得到一个ListItr对象,每个ListItr对象表示一个增强型的顺序遍历迭代器,它支持从后向前遍历ArrayList中的元素

 

内部类SubList

    private class SubList extends AbstractList<E> implements RandomAccess {
    …………省略很多源码…………
}

SubList以普通内部类形式定义在ArrayList中,ArrayList对象有一个subList()方法返回的是SubList对象,每个SubList对象代表一个List的某个区间中的所有元素的集合

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值