ArrayList是Java集合框架中的一个重要的类,它继承于AbstractList,实现了List接口。
ArrayList底层数据结构是 数组,特点是有序,不唯一
它提供了如下一些好处:
- 动态的增加和减少元素
- 实现了ICollection和IList接口
- 灵活的设置数组的大小
最简单的例子:
ArrayList List = new ArrayList();
for( int i=0;i<10;i++ ) //给数组增加10个Int元素
List.Add(i);
ArrayList提供了三个构造器:
public ArrayList();
默认的构造器,将会以默认(16)的大小来初始化内部的数组
public ArrayList(ICollection);
用一个ICollection对象来构造,并将该集合的元素添加到ArrayList
public ArrayList(int);
用指定的大小来初始化内部的数组
代码示例:
public class TestArrayList {
public static void main(String[] args) {
// 1、添加
List list = new ArrayList();
list.add("hello");
list.add("hello");
list.add(123);//自动装箱成Integer
list.add(new Scanner(System.in));
System.out.println(list);
// 2、size()
System.out.println(list.size());
System.out.println("集合是否为空:"+list.isEmpty());
List list2 = new ArrayList();
list2.add("word");
list2.add(456);
// 3、addAll()
list.addAll(list2);//list集合中添加list2中的所有元素
System.out.println(list);
System.out.println("list集合中元素的个数"+list.size());
// 4、删除
list.remove("hello");
//list.remove(123);//这样删除元素编译器会认为123是索引,所以报错
list.remove(new Integer(123));//对比上面这样写才是对的
System.out.println(list);
list.remove(0); //根据索引删除Scanner
System.out.println(list);
//list.removeAll(list2); //删除list集合中与list2集合中相同的元素
list.retainAll(list2); //删除list集合中与list2集合中不同的元素
System.out.println(list);
// 5、判断
System.out.println("集合中是否包含hello:"+list.contains("hello"));
System.out.println(list.containsAll(list2));
}
}