ArrayList和LinkedList的区别:
ArrayList是可变长度的数组,分配空间是连续的。他的存储特点是:有序但是不唯一
LinkedList是链表形式存储的,他分配的空间不是连续的。存储特点和ArrayList的一样
ArrayList和LinkedList的优缺点进行比较:
他们的优缺点正好互补
ArrayList的优点:查找遍历比较高效。(因为他是可变长度的数组)
ArrayList的缺点:删除,插入比较费力。(当删除中间某一个那么被删除后面的每一个都要往前移动一位,插入同理)
LinkedList的优点:删除,插入高效。(因为他是链表,只需要头尾相接进去就可以了,不需要其他的操作)。
LinkedList的缺点:查找遍历低效。(就像是第一个箱子里面装第二个箱子的钥匙,第二个箱子装的是第三个箱子的钥匙,以此类推。想要拿到第四个箱子的东西就得一次拿到第一个箱子的钥匙,第二个箱子的。。依次类推,所以遍历查找比较费力)
package com.sxt.linked;
import java.util.LinkedList;
public class Linked1 {
public static void main(String[] args){
LinkedList<String> ll=new LinkedList<>();
//增加
ll.add("aaa");
ll.add("bbb");
ll.addFirst("aaaaaa");//这个是在最前头添加这个内容
ll.addLast("ccccccc");//addLast是在最后一个添加内容
System.out.println(ll);//当是基本数据类型时,就可以直接打印出来,如果是引用数据类型时就得重写toString方法
//删除:应该知道remove的返回结果的类型,就是泛型<>;
System.out.println(ll.removeFirst());
System.out.println(ll.removeLast());
for(String a:ll){
System.out.println(a);
}
//查
ll.getFirst();
ll.getLast();
}
}