一、核心方法
1、ArrayList与LinkedList的区别
1、ArrayList是通过数组实习,而LinkedList是通过链表实现。
2、ArrayList在取数据的时候时间复杂度为O(1),而LinkedList的时间复杂度为O(n)。
3、在存放大较大数据,且长度无法预估的时候,ArrayList会在扩充长度的时候产生大量垃圾降低性能,而LinkedList则不会。ArrayList的扩充是以1.5倍扩充。
4、ArrayList的构造方法有一个指定长度,而LinkedList没有。
2、要点
1、添加数据的时候可以为空
2、通过新增节点的方式在链表最后添加元素
3、添加元素
public boolean add(E e) {
linkLast(e);
return true;
}
4、LinkedList结构
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable{}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/820f223c99064339eade627495a9f77c.png)
二、完整代码
package collectjh.list;
import java.util.LinkedList;
public class LinkedListDome {
public static void main(String[] args) {
LinkedList<String> linkedList = new LinkedList<String>();
linkedList.add("你好");
linkedList.add("xlu");
linkedList.remove("xlu");
linkedList.forEach((str) -> {
System.out.println(str);
});
linkedList.remove("xlu");
System.out.println("删除xlu后");
linkedList.forEach((str) -> {
System.out.println(str);
});
System.out.println("索引为0的元素:"+linkedList.get(0));
}
}
三、运行结果
你好
删除xlu后
你好
索引为0的元素:你好