在LinkedList Java Core Collection中,addLast有什么用?

时间:2013-10-21 11:52:36

标签: java collections

我有一个名为ll的链接列表对象。我在该对象中添加了一些数据。假设如下:

LinkedList ll = new LinkedList();

ll.add("Mohan");

ll.add("Rajesh");

ll.addFirst("Kumar");

ll.addLast("Nammu");

ll.add("Divyesh");

我的问题是:如果我已经插入了100个数据,那么当我使用addFirst()方法时,该数据将在First处插入,但同样的功能也应该发生在addLast()方法中,这意味着在我使用addLast()方法的任何地方,它也必须最后插入数据,但是如果我在addLast()方法之后再添加数据,那么数据只会在最后插入,那么addLast()方法的用途是什么而不是我们只能使用add()方法吗?

5 个答案:

答案 0 :(得分:15)

LinkedList类实现了DequeQueue接口。它继承了Queue的{​​{3}}方法和Deque的{​​{3}}方法。两种方法都具有相同的功能。

答案 1 :(得分:3)

正如javadoc所述,addLastadd是等效的:addLast(E e)

答案 2 :(得分:1)

  

javap java.util.LinkedList

     

从“LinkedList.java”编译

     

public class java.util.LinkedList extends java.util.AbstractSequentialList实现java.util.List,java.util.Deque,java.lang.Cloneable,java.io.Serializable {

你可以在这里看到LinkedList扩展了AbstractSequentialList并且它实现了list接口,添加和删除是这个接口的方法你可以用以下命令检查它

  

javap java.util.List

从“List.java”编译

public interface java.util.List extends java.util.Collection {

public abstract int size();

public abstract boolean isEmpty();

public abstract boolean contains(java.lang.Object);

public abstract java.util.Iterator iterator();

public abstract java.lang.Object [] toArray();

public abstract T [] toArray(T []);

public abstract boolean add(E);

public abstract boolean remove(java.lang.Object);

public abstract boolean containsAll(java.util.Collection);

public abstract boolean addAll(java.util.Collection);

public abstract boolean addAll(int,java.util.Collection);

public abstract boolean removeAll(java.util.Collection);

public abstract boolean retainAll(java.util.Collection);

public void replaceAll(java.util.function.UnaryOperator);

public void sort(java.util.Comparator);

public abstract void clear();

public abstract boolean equals(java.lang.Object);

public abstract int hashCode();

public abstract E get(int);

public abstract E set(int,E);

public abstract void add(int,E);

public abstract E remove(int);

public abstract int indexOf(java.lang.Object);

public abstract int lastIndexOf(java.lang.Object);

public abstract java.util.ListIterator listIterator();

public abstract java.util.ListIterator listIterator(int);

public abstract java.util.List subList(int,int);

public java.util.Spliterator spliterator();

}

实际上方法add和addLast做同样的事情,但由于上述原因,它有两种方法。

我想我已经给出了答案。随时评论...

答案 3 :(得分:0)

方法:布尔加法(E e)和adddLast(E)是等价的。

此处显示Javadocs

答案 4 :(得分:0)

实际上,检查LinkedList类的代码有一个小的区别:

add()方法的返回类型为布尔值,并且在return语句中硬编码为true,并且addLast()返回类型为void。

除此之外,它们执行相同的操作。