LinkedList类源码浅析(二)

1、上一节介绍了LinkedList的几个基本的方法,其他方法类似,就不一一介绍;

现在再来看一个删除的方法:remove(Object o)

remove方法接受一个Object参数,这里需要对参数做空与非空处理;

但是删除一个Object元素,都需要遍历整个链表,这样如果需要频繁的调用remove方法,删除的效率是非常低的;

类似的方法还有indexOf(Object o):这是根据传入的object参数来获取下标的方法;

2、根据下标来查找节点元素:node(int index)

这个查询有一个特点:把链表分成两段来进行遍历,如果index<size/2,那么遍历前半段,否则遍历后半段;

这样做虽然提高了效率,但是如果链表非常大的话,效率还是会比较慢;

3、LinkedList的迭代器对象

迭代器对象也提供了丰富的操作方法:包括查找前置元素,后继元素,增加元素和删除元素方法;

同时也会抛出并发修改异常:ConcurrentModificationException

原文地址:https://www.cnblogs.com/lianliang/p/5765081.html