博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于AbstractList
阅读量:7015 次
发布时间:2019-06-28

本文共 1622 字,大约阅读时间需要 5 分钟。

  hot3.png

今天把AbstractList看下,看看他内部究竟是怎样的,有源码就是好。

AbstractList

一个实现了List接口的抽象类,源码

public abstract class AbstractList
extends AbstractCollection
implements List

原来他不仅仅实现了List接口,还继承了AbstractCollection抽象类。看他实现了哪些方法。

add

public boolean add(E e) {        add(size(), e);        return true;    }
原来add(E e)方法调用了add(int index,E e)方法。源码不看也知道,这个可以在指定位置插入元素的方法是没有具体实现的。

public void add(int index, E element) {        throw new UnsupportedOperationException();    }

remove

看下clear方法的实现

public void clear() {        removeRange(0, size());    }
他调用了removeRange方法,源码

protected void removeRange(int fromIndex, int toIndex) {        ListIterator
it = listIterator(fromIndex); for (int i=0, n=toIndex-fromIndex; i
这个用到了迭代器,我觉得fromIndex肯定是应该比toIndex小的。去看下有关迭代器的方法

Iterator

public Iterator
iterator() { return new Itr(); } public ListIterator
listIterator() { return listIterator(0); } public ListIterator
listIterator(final int index) { rangeCheckForAdd(index); return new ListItr(index); }
AbstractList提供了三个接口允许用户取得迭代器。

其它方法

hashCode:

public int hashCode() {        int hashCode = 1;        for (E e : this)            hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());        return hashCode;    }

subList:

public List
subList(int fromIndex, int toIndex) { return (this instanceof RandomAccess ? new RandomAccessSubList<>(this, fromIndex, toIndex) : new SubList<>(this, fromIndex, toIndex)); }

转载于:https://my.oschina.net/tunie/blog/121696

你可能感兴趣的文章
JSTL、EL、ONGL、Struts标签的区别与使用
查看>>
Xamarin提示Build-tools版本过老
查看>>
Android库分析工具(崩溃反编译)
查看>>
otl翻译(11) -- OTL的迭代器
查看>>
POJ 2184 Cow Exhibition 01背包
查看>>
51术语详解
查看>>
【转】性能测试、负载测试、压力测试的区别
查看>>
[linux]scp指令
查看>>
深入理解CSS定位中的堆叠z-index
查看>>
自从升级到macOS后,整个人都不好了
查看>>
linux网卡掉包或挂掉解决办法
查看>>
border-style 属性
查看>>
只有iOS开发者,才能看的懂的,斥锁-读写锁-条件锁
查看>>
如何用 Uber JVM Profiler 等可视化工具监控 Spark 应用程序?
查看>>
新技能Get:如何利用HTTP技术提升网页的加载速度
查看>>
拒绝旧国标劣质排插,新国标插线板首选品胜
查看>>
金融业务上云要熟虑 看IBM如何化解难题
查看>>
AT&amp;T将于2018年底在十几个城市推出5G网络
查看>>
品钛在美国上市 魏伟:上市不是锣鼓欢庆 而是起跑发令枪
查看>>
学习Python爬虫真的不难,只需要明白这四个点!
查看>>