类LinkedList<E>

来源:互联网 发布:thrift python 编辑:程序博客网 时间:2024/05/22 05:34

1、继承关系

  • java.lang.Object
    • java.util.AbstractCollection<E>
      • java.util.AbstractList<E>
        • java.util.AbstractSequentialList<E>
          • java.util.LinkedList<E>
2、实现接口如下:

Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>
3、双向链表是列表和双端队列的实现。它实现了列表的所有操作,可存储任意类型的数据,包括null。

4、双向链表具备了我们期待的所有操作。能索引链表的操作将会从链表的头部或者尾部来遍历链表,这取决于哪端距离指定索引更近。

注意:这一执行过程并不是同步的。如果多个线程同时访问一个链表,并且至少一个线程修改来改列表的结构,对外在的线程来说这看起来必须是同步的(所谓结构修改操作,包括:增加或者删除一个或者多个元素,修改某个已经存在的元素的值不属于结构修改。)这一操作通常通过同步一些包含列表的对象来完成。如果没有这样的对象存在,那么这个列表应该通过 Collections.synchronizedList方法来将其包含其中。这一操作最好在创建时即完成,以防止列表发生一些意外的非同步现象:

    List list=Collections.synchronizedList(new LinkedList());
5、迭代器由类的迭代程序返回,并且列表迭代器方法失效很快:在迭代器创建后的任何时刻,如果列表的结构改变了,以任何方式通过迭代器自身的移除、添加方法,迭代器将会抛出ConcurrentModificationException异常。因此,在面对同时修改列表时,迭代器即刻失效,而非去承担一种“在后期的不确定时间里发生不确定性操作”的风险行为。
注意:迭代器快速失效方法不能被认作是理所当然的,通常来讲,在多个修改非同步的情况下,我们竭力所做的任何保证都是不可能的。快速失效迭代器在被动地尽力基础上抛出“同步修改异常”。因此,写一个依赖于这一异常判定其正确性的程序是错误的:迭代器的快速失效操作仅仅应该被查找bug。
这个类是java集合框架中的一员。
返回类型方法描述booleanadd(E e) 在列表尾部追加元素voidadd(int index, E element) 在列表指定位置添加元素booleanaddAll(Collection<? extends E> c) 在列表尾部添加全部元素,其顺序按照集合迭代器返回的顺序booleanaddAll(int index, Collection<? extends E> c) 在指定位置开始,添加集合所有元素voidaddFirst(E e) 在列表头部添加元素voidaddLast(E e) 在列表尾部添加元素voidclear() 移除列表中全部元素Objectclone() 返回链表的浅表副本booleancontains(Object o) 如果链表包含指定元素,则返回trueIterator<E>descendingIterator() 双端队列中,以倒序的形式返回元素的迭代器Eelement() 检索列表头部,但不移除Eget(int index) 获得列表指定位置元素的值EgetFirst() 获得列表第一个元素的值EgetLast() 获取列表最后一个元素的值intindexOf(Object o) 获取列表中和指定元素第一个匹配的元素的索引,不存在时返回-1intlastIndexOf(Object o) 获取列表中和指定元素最后一个匹配的元素的索引,不存在时返回-1ListIterator<E>listIterator(int index) 从链表的指定位置开始,返回列表的一个迭代器()booleanoffer(E e) 在列表尾部添加元素booleanofferFirst(E e) 在列表头部添加元素booleanofferLast(E e) 在列表尾部添加元素Epeek() 返回列表的头元素,但不移除EpeekFirst() 返回列表的头元素,但不移除;如果列表为空,返回nullEpeekLast() 返回列表的尾部元素,但不移除;如果列表为空,返回nullEpoll() 返回并移除列表的头元素EpollFirst() 返回并移除列表的头元素;如果列表为空,返回nullEpollLast() 返回并移除列表的尾部元素;如果列表为空,返回nullEpop() 取出一个由列表代替的栈的元素voidpush(E e) 添加一个元素到一个由列表替代的栈中Eremove() 返回并移除列表头元素Eremove(int index) 移除指定位置的元素booleanremove(Object o) 移除列表中出现的第一个指定的元素,如果它存在EremoveFirst() 移除并返回列表的第一个元素booleanremoveFirstOccurrence(Object o) 移除列表中出现的第一个指定的元素(遍历顺序为从头到尾)EremoveLast() 移除并返回列表的最后一个元素booleanremoveLastOccurrence(Object o) 移除列表中出现的最后一个指定的元素(遍历顺序为从头到尾)Eset(int index, E element) 在指定位置,替换为指定的元素intsize() 返回列表中元素的个数Object[]toArray() 按照一定顺序(从头到尾),返回包含列表中所有元素的一个数组<T> T[]toArray(T[] a) 按照一定顺序(从头到尾),返回包含列表中所有元素的一个数组;返回数组类型由指定数组类型确定
6、继承来源
java.util.AbstractSequentialList
iterator
java.util.AbstractList
equalshashCodelistIteratorremoveRangesubList
java.util.AbstractCollection
containsAllisEmptyremoveAllretainAlltoString
java.lang.Object
finalizegetClassnotifynotifyAllwaitwaitwait
java.util.List
containsAllequalshashCodeisEmptyiteratorlistIteratorremoveAllretainAllsubList
java.util.Deque
iterator


0 0
原创粉丝点击