List的两个子类的特点
因为两个类都实现了List接口,所以里面的方法都差不多,那这两个类都有什么特点呢?
ArrayList:
底层数据结构是数组,查询快,增删慢。
LinkedList:
底层数据结构是链表,查询慢,增删快。
这个两个个子类有什么区别和共同点?
ArrayList和LinkedList的区别
ArrayList底层是数组结果,查询和修改快
LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
共同点:都是线程不安全的
在开发中使用哪个?
查询多用ArrayList
增删多用LinkedList
如果都多ArrayList
ArrayList线程安全的方案
如果使用ArrayList需要考虑线程安全的问题,有两种方案:
可以使用Collections工具类中的synchronizedList方法可以将ArrayList变成线程安全的
Listlist= Collections.synchronizedList(newArrayList());
使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList一样