ArrayList的使用

ArrayList类:可变化长度的数组。

与一般的数组不同的是,其长度不固定,可以添加任意类型的数据。

也可以添加不同类型的数据,但是一般不这么做。


ArrayList类位于java.util.ArrayList下,使用前需引用。

import java.util.ArrayList

初始化方法:

ArrayList al = new ArrayList();//容器

添加单个数据:

1-添加在ArrayList数组的最后:

al.add("remoo");

2-在指定索引处添加:

al.add(0,"jack");

ArrayList还支持添加一整个ArrayList数组:

al.addAll(al2);

获取ArrayList数组:

i为数组索引。

al.get(i)

需要注意的点:

读取int等数值类型进行数学运算的时候,我们必须需要进行强制类型转换。

以下两种操作是错误的:

ArrayList ck = new ArrayList();
ck.add(11);
ck.add(123);
ck.add(442);
int result1 =0;
for (Object ob : ck)
    result1+=ob;

System.out.println("result:" + result1);
System.out.println(ck.get(0)+ck.get(1));

我们需要对ob进行强制类型转换。

在for循环语句中的代码修改为:

result1+=(int)ob;

移除数据有两种方法,通过索引移除或者通过内容移除。

al.remove(1);
al.remove("jack");

如果内容有重复,则会只移除索引值较小的那一个成员。


判断是否为空的ArrayList

al.isEmpty();

返回boolean。


判断是否包含某内容

al.contains("remoo");

迭代器Iterator的使用

作用:可以简单理解为遍历数组之用

优点:非常方便

缺点:一次性

初始化:需要指定对哪一个ArrayList所创建的遍历器。

Iterator iterator = al.iterator();

里边有next(),hasNext()等常用方法。

while(iterator.hasNext()){
    System.out.println(iterator.next());
}

以上方法即可轻轻松松遍历所有的内容。


Vector类和ArrayList类的异同:

使用上是一模一样的。

Vector是线程安全的,但是ArrayList更高效适合用于单线程的程序当中。


ArrayList类和LinkedList类的异同:

后者适合频繁插入或删除数据,一般用于需求大量添改数据的业务。

后者有两种新的方法:

lks.addFirst(1);
lks.addLast(999);