首页 > 代码库 > 初识ArrayList

初识ArrayList

长度可变的数组,有序,可重复

 

下面以学生选课为例:

课程类:

public class Course {
    public String name;
    
    public Course(String name){
        this.name=name;
    }
}


我们想把学生可选课程加入选课列表

由于课程是变化的,数组不能很好的满足需求,这里可以用集合,ArrayList

我们需要一个用于存放备选课程的容器(List的对象)

List coursesToSelect=new ArrayList();

这样,我们就可以进行操作了

因为集合里面的元素都是对象,

Course cr1=new Course("数据结构");

Course cr2=new Course("算法");

Course cr3=new Course("JAVA");

 

添加元素

1.依次添加

coursesToSelect.add(cr1);

coursesToSelect.add(cr2);

这两门课依次添加至coursesToSelect中

 

2.指定位置添加

因为ArrayList是由数组实现的,所以它的序列也是从0开始

coursesToSelect.add(0,cr3);

这样,cr3就被添加到第一个位置,之前的元素依次后移

当然,因为目前集合只有2个元素,你可以插在最后一位的后面(2),你不可以将它放置在3位置

 

3.一次添加多个

我们可以向集合里面添加集合

首先,创建一个数组,里面存放多门课程

Course[] course={new Course("离散数学"),new Course("高等数学")};

然后,我们需要将数组转换为集合,需要用到Array.aslist(Object)方法

coursesToSelect.addAll(Array.asList(course));

将course里面的元素依次添加

同理,addAll()方法也可以指定位置添加

ArrayList里面的元素可以重复添加

 

取出元素

1.取出指定序号元素

coursesToSelect.get(num);

取出的元素的类型是Object,我们需要使用它,则需要(Course)强转

size()方法可以让我们得到集合的长度

这样,可以用for循环依次取出集合中的元素

 

2.使用迭代器来遍历List

Iterator it=coursesToSelect.iterator();

while(it.hasNext()){

  Course cr=(Course)it.next();

}

 

3.通过for each遍历List

for(Object obj:coursesToSelect){

  Course cr=(Course) obj;

}

 

修改,删除元素

1.修改元素

set()方法,

coursesToSelect.set(1,new Course("毛概"))//指定位置,新的元素

2.删除元素

remove()方法,

coursesToSelect.remove(1);//删除指定位置的元素

同样的,removeAll()方法可以删除一个集合里面的全部元素

不过,集合中放的不是序号,

Course[] courses={(Course)coursesToSelect.get(1),(Course)coursesToSelect.get(2)};

 

这样,我们对ArrayList进行了一些简单的操作

但是我们直接使用add()方法添加元素

有时,添加了一些不是我们需要的东西,在取出的时候会报错

我们可以指定集合的类型,从而在编写代码的时候,编译器就会对我们进行提醒

使用泛型:List<Course> courses=new ArrayList<Course>();//这样我们就只允许添加Course类型的元素了。

 

初识ArrayList