转自:http://www.java265.com/JavaJingYan/202110/16354330941610.html

ArrayList简介:

ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。

ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的 CopyOnWriteArrayList类。

ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问,实现了Cloneable接口,能被克隆。


下文笔者讲述java中初始化ArrayList的三种不同方式,如下所示:

方式1:
实例化一个List对象
然后采用add方法添加数值

例:

 List list1 = new ArrayList();  list1.add("java265.com");  list1.add("我的最爱");  list1.add("我的网站");

借助一个List进行初始化

List list2 = new ArrayList(Arrays.asList("java265.com", "我最爱的网站", "我的最爱"));   List list3 = new ArrayList(Collections.nCopies(2, "java265.com"));  

使用匿名内部类进行初始化

下面的初始化代码:     最外层的大括号:代表创建一个ArrayList匿名子类 内层的大括号定义了该匿名子类的构造块,自定运行其中的代码
  List list4 = new ArrayList() {          {              add("Java265.com");              add("我的最爱");              add("我的网站");          }      };