转自: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<String> list1 = new ArrayList<String>();
list1.add("java265.com");
list1.add("我的最爱");
list1.add("我的网站");
借助一个List进行初始化
List<String> list2 = new ArrayList<String>(Arrays.asList("java265.com", "我最爱的网站", "我的最爱"));
List<String> list3 = new ArrayList<String>(Collections.nCopies(2, "java265.com"));
使用匿名内部类进行初始化
下面的初始化代码: 最外层的大括号:代表创建一个ArrayList匿名子类 内层的大括号定义了该匿名子类的构造块,自定运行其中的代码
List<String> list4 = new ArrayList<String>() {
{
add("Java265.com");
add("我的最爱");
add("我的网站");
}
};