ArrayList:
1、ArrayList底层是基于数组来实现的
2、ArrayList更适用于随机访问操作,因为从ArrayList中读取数据的时候,只需要提供下标即可,而由于底层是数组实现的,所以可以直接通过下标索引的方式来获取。而如果是插入数据操作,就相当于在数组中间添加元素,那么就会导致数组下标需要后移,所以插入操作速度较慢。
3、ArrayList不是线程安全的,使用CopyOnWriteArrayList类是线程安全的,多线程的情况下可以用来代替ArrayList
LinkedList:
1、LinkedList底层是基于链表来实现的
2、LinkedList更适用于插入和删除操作,因为LinkedList底层是链表,所以插入等操作直接操作链表的指针就可以,而查询的时候效率低
3、LinkedList也是线程不安全的。