标签:需求 写代码 div 编译 迭代器 指定 删除元素 课程 logs
长度可变的数组,有序,可重复
下面以学生选课为例:
课程类:
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类型的元素了。
标签:需求 写代码 div 编译 迭代器 指定 删除元素 课程 logs
原文地址:http://www.cnblogs.com/NextLight/p/6662364.html