JAVA中LinkedList接口的方法
以下内容为复制API,方便自己学习、记忆。
compact1, compact2, compact3
java.util
Class LinkedList<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.AbstractSequentialList<E>
java.util.LinkedList<E>
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, Serializable
请注意,此实现不同步。 如果多个线程同时访问链接列表,并且至少有一个线程在结构上修改列表,则必须在外部进行同步。 (结构修改是添加或删
除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这通常通过在自然封装列表的对象上进行同步来实现。 如果没有这样的对象存在,列
表应该使用Collections.synchronizedList方法“包装”这最好在创建时完成,以防止意外的不同步访问列表:List list= Collections.synchronizedList(new LinkedList(...));
构造方法:
- public LinkedList()
- 构造一个空列表。
- public LinkedList(Collection<? extends E> c)
- 构造一个包含指定集合c的元素的列表,按照它们由集合的迭代器返回的顺序。
方法:
- public E getFirst()
- 返回此列表中的第一个元素。
- 说明:getFirst在接口 Deque<E>
- public E get(int index)
- 返回此列表中指定位置的元素
- 说明: get在接口 List<E> 重写:get在 AbstractSequentialList<E>
- public E getLast()
- 返回此列表中的最后一个元素。
- 说明:getLast在接口 Deque<E>
- public void addFirst(E e)
- 在该列表开头插入指定的元素。
- 说明:addFirst在接口 Deque<E>
- public void addLast(E e)
- 将指定的元素追加到此列表的末尾。这个方法相当于add(E) 。
- 说明:addLast在接口 Deque<E>
- public boolean add(E e)
- 将指定的元素追加到此列表的末尾。此方法相当于addLast(E) 。
- 说明:add在接口 Collection<E> 、 add在接口 Deque<E> 、 add在接口 List<E>、 add在接口 Queue<E> 重写:add在 AbstractList<E>
- public void add(int index,E element)
- 在此列表中的指定位置插入指定的元素。将当前位置的元素(如果有)和任何后续元素向右移动(其索引加1)。
- 说明: add在接口List<E>重写:add在 AbstractSequentialList<E>
- public boolean addAll(Collection<? extends E> c)
- 按照指定集合的迭代器返回的顺序将指定集合中的所有元素追加到此列表的末尾。注意,如果指定的集合是此列表,并且它是非空的,则会发生这种情况。
- 说明: addAll在界面 Collection<E>、addAll中的 List<E> 重写: addAll在 AbstractCollection<E>
- public boolean addAll(int index,Collection<? extends E> c)
- 将指定集合中的所有元素插入到此列表中,从指定的位置开始。 将当前位于该位 置(如果有的话)的元素和随后的任何元素移动到右边(增加其索引)。 新元素将按照指定集合的迭代器返回的顺序显示在列表中。
- 说明:addAll在接口 List<E> 重写:addAll在 AbstractSequentialList<E>
- public boolean contains(Object obj)
- 如果此列表包含指定的元素obj,则返回true。
- 说明: contains在接口 Collection<E> 、 contains在接口 Deque<E> 、 contains在接口 List<E> 重写:contains在 AbstractCollection<E>
- public int size()
- 返回此列表中的元素个数。
- 说明:size在接口 Collection<E> 、 size在接口Deque<E>、size在接口 List<E>、重写:size在 AbstractCollection<E>
- public E removeFirst()
- 从此列表中删除并返回第一个元素。
- 说明:removeFirst在接口 Deque<E>
- public E removeLast()
- 从此列表中删除并返回最后一个元素。
- 说明:removeLast在界面 Deque<E>
- public boolean remove(Object obj)
- 从列表中删除第一次出现的指定元素obj(如果存在)。 如果此列表不包含该元素,则它将保持不变。调用集 合发生变化,返回true。
- 说明: remove在接口 Collection<E>、 remove在接口Deque<E> 、remove中的 List<E>重写: remove在 AbstractCollection<E>
- public E remove(int index)
- 删除该列表中指定位置的元素。 将任何后续元素左移一个位置(其索引中减去1)。 返回从列表中删除的元素。
- 说明: remove在接口 List<E> 重写: remove在类 AbstractSequentialList<E>
- public boolean removeFirstOccurrence(Object obj)
- 删除列表中第一次出现的指定元素obj(从头到尾遍历列表)。 如果列表不包含该元素,则它不会更改。
- 说明: removeFirstOccurrence在接口 Deque<E>
- public boolean removeLastOccurrence(Object o)
- 删除此列表中最后一次出现的指定元素(从头到尾遍历列表)。 如果列表不包含该元素,则它不会更改。
- 说明:removeLastOccurrence在接口 Deque<E>
- public void clear()
- 从列表中删除所有元素。返回后,列表将为空。
- 说明clear在接口 Collection<E> Specified by:clear在接口 List<E> 重写:clear在 AbstractList<E>
- public E set(int index,E element)
- 用指定的元素替换此列表中指定位置的元素。
- 说明: set在接口 List<E> 重写:set在AbstractSequentialList<E>
- public void push(E e)
- 将元素推送到由此列表表示的堆栈上。 换句话说,在该列表的第一位置插入元素。此方法相当于addFirst(E) 。
- 说明:push在界面 Deque<E>
- public E pop()
- 从此列表表示的堆栈中弹出一个元素。 换句话说,删除并返回此列表的第一个元素。此方法相当于removeFirst() 。
- 说明:pop在接口 Deque<E>
- public int indexOf(Object obj)
- 返回此列表中指定元素第一次出现的索引,如果此列表不包含元素,则返回-1。
- 说明: indexOf中的 List<E> 重写:indexOf在AbstractList<E>
- public int lastIndexOf(Object obj)
- 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
- 说明: lastIndexOf在接口List<E> 重写:lastIndexOf在 AbstractList<E>
- public E peek()
- 检索但不删除此列表的第一个元素,返回第一个元素。
- 说明:peek在接口 Deque<E> 、 peek在接口 Queue<E>
- public E element()
- 检索但不删除此列表的第一个元素,返回第一个元素。
- 说明: element在接口 Deque<E> 、element中的 Queue<E>
- public E poll()
- 检索并删除此列表的第一个元素,返回第一个元素。
- 说明: poll在接口 Deque<E> 、poll在界面 Queue<E>
- public Object clone()
- 返回此LinkedList的拷贝。 (元素本身不被克隆。)
- 重写: clone在 Object
- public boolean offer(E e)
- 将指定的元素添加为此列表的尾部(最后一个元素)。
- 说明:offer在界面 Deque<E> 、offer在界面 Queue<E>
- public boolean offerFirst(E e)
- 在此列表的第一位置插入指定的元素。
- 说明: offerFirst在接口 Deque<E>
- public boolean offerLast(E e)
- 在该列表的末尾插入指定的元素。
- 说明: offerLast在接口 Deque<E>
- public E peekFirst()
- 检索但不删除此列表的第一个元素,如果此列表为空,则返回 null 。
- 说明: peekFirst在接口 Deque<E>
- public E peekLast()
- 检索但不删除此列表的最后一个元素,如果此列表为空,则返回 null 。
- 说明:peekLast在接口 Deque<E>
- public E pollFirst()
- 检索并删除此列表的第一个元素,如果此列表为空,则返回 null 。
- 说明:pollFirst在接口 Deque<E>
- public E pollLast()
- 检索并删除此列表的最后一个元素,如果此列表为空,则返回 null 。
- 说明: pollLast在界面 Deque<E>
- public Object[] toArray()
- 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。返回的数组将是“安全的”,因为该 列表不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组)。 因此,调用者可以自由地修改返回的数组。此方法充当基于阵列和基于集 合的API之间的桥梁。
- 说明: toArray中的 Collection<E> 、 toArray在接口List<E> 重写:toArray在 AbstractCollection<E>
- public <T> T[] toArray(T[] a)
- 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的类型是指定数组的类型。 如果列表大小匹配指定的数组,则返回列表。 若列表大小大于返回数组,则将会分配一个新数组。如果列表小于指定的数组,其余空间将设置为null 。 (这仅在调用者知道列表不包含任何空元素的情况下才能确定列表的长度。)像toArray()方法一样,此方法充当基于阵列和基于集合的API之间的桥梁。 此外,该方法允许精确地控制输出阵列的运行时类型,并且在某些情况下可以用于节省分配成本。假设x是一个已知只包含字符串的列表。 下面的代码可以被用来将该列表转储到一个新分配的阵列String : String[] y = x.toArray(new String[0]); 请注意, toArray(new Object[0])的功能与toArray() 。
- 说明: toArray中的Collection<E> 、toArray中的 List<E> 重写: toArray在 AbstractCollection<E>
- public Spliterator<E> spliterator()
- 在此列表中的元素上创建late-binding和故障快速 Spliterator 。Spliterator报告Spliterator.SIZED 和Spliterator.ORDERED 。 覆盖实现应记录其他特征值的报告。
- 说明:spliterator在接口 Iterable<E> 、 spliterator在接口 Collection<E> 、 spliterator在接口 List<E>
- public List<E> subList(int fromIndex,int toIndex)
- 返回调用集合索引formIndex至toIndex-1的元素的集合