一、ArrayList是List实现类,因为它底层使用了数组,而数组特点是查询快、增删慢,因此使用时要注意这个特性,
如果存在大量查询操作就可以使用,如果使用增删操作多就慎用。---不是单线程
java.util.LinkedList<E> 实现implement List接口
二、LinkedList特点:
1、使用的是链式结构,因此存在查询慢、增删快的特点。---不是单线程
2、包含大量特首操作首尾元素的方法(当然继承了List的方法)。
注意:不能使用多态方法,否则特有方法就不能用了。
三、特有方法:
public void addFirst(E e)
将指定元素插入此列表的开头。
public void addLast(E e)
将指定元素添加到此列表的结尾。此方法等效于 add(E)。
public void push(E e)
将元素推入此列表所表示的堆栈。换句话说,将该元素插入此列表的开头。
public E getFirst()
返回此列表的第一个元素。
public E getLast()
返回此列表的最后一个元素。
public E remove()
获取并移除此列表的头(第一个元素)。
public E removeLast()
移除并返回此列表的最后一个元素。
public E pop()
从此列表所表示的堆栈处弹出一个元素。换句话说,移除并返回此列表的第一个元素。此方法等效于 removeFirst()。
public boolean isEmpty()
如果此 collection 不包含元素,则返回 true。此方法等效于 addFirst(E)。
public class LinkedList02 {
public static void main(String[] args) {
LinkedList<String> linkedList= new LinkedList<>();
linkedList.add("a1");
linkedList.add("a2");
linkedList.add("a3");
System.out.println(linkedList);
System.out.println("=====================");
linkedList.addFirst("www");
linkedList.addLast(".com");
System.out.println("=====================");
System.out.println(linkedList);
linkedList.push("http//");
System.out.println(linkedList);
System.out.println("=====================");
System.out.println(linkedList.getFirst());
System.out.println("=====================");
System.out.println(linkedList.getLast());
System.out.println("=====================");
System.out.println(linkedList.remove());
System.out.println("=========Remove之后=======");
System.out.println(linkedList);
System.out.println(linkedList.removeFirst());
System.out.println("====RemoveFirst之后=========");
System.out.println(linkedList);
System.out.println(linkedList.isEmpty());
}
}