• ArrayList和是实现了基于动态数组的数据结构,LinkedList是基于链表的数据结构;
  • 对于随机访问get和set,ArrayList要优于LinkedList,因为LinkedList要移动指针;
  • 对于新增和删除操作(add和remove),LinkedList比较占优势,因为ArrayList要移动元素;
  • ArrayList可以添加为null的对象元素,对于取出来的值要做一个判空;
  1. public static void addList() {
  2. List<String> list = Lists.newArrayList();
  3. list.add(null);
  4. System.out.println(list.size());//1
  5. System.out.println(list.get(0));//null
  6. }

线程安全