List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
首先 先创建一个学类 Course 便于下面观察:
package www.contentcl.cn;
/**
* 课程类
* @author Administrator
*
*/
public class Course {
public String name;
public String id;
public Course(String id, String name){
this.id = id;
this.name = name;
}
}
开始之前先引入一个概念 泛型
但我们本次 先使用 任意类型的对象
1.创建
在另一个 函数类中 创建一个 List
我们可以创建 一个指定类型(泛型)的List
eg: List< Course > = new ArrayList< Course >();
或者 在类中 创建一个 自定义的 List
public class Listtest {
/**
* 用于存放备选课程的List
*/
public List coursese;
public Listtest(){
this.coursese = new ArrayList();
}
}
2.增加元素
1.Course sign1 = new Course(“1”, “高等数学”);
coursese.add(sign1); //添加到List末端
2.Course sign2 = new Course(“2”, “数据结构”);
coursese.add(0, sign2); //添加到下标为0的位置, 后面如果有数据往后移
3.// 创建对象数组
Course[] course = {new Course(“3”, “线性代数”), new Course(“4”, “C语言”)};
coursese.addAll(Arrays.asList(course)); //1个参数都是追加到末尾
coursese.addAll(2, Arrays.asList(course)); //对应第一个放在 下边为2的位置,第二个放在3的位置 后面数据往后移
4.特别注意 : 如果添加到具体, 所要加入的位置不能超过List的长度;
3.获取数据
1.获取单一的数据
Course show1 = (Course) coursese.get(0); //获取下标为0的数据
因为coursese.get(0) 获取到的 数据类型是Object类型 所以 我们要强 制类型转化为Course对象类型
2.通过for循环遍历List
int size = coursese.size(); //获取集合类型大小用size()方法
for (int i=0; i<size; i++){
Course get1 = (Course) coursese.get(i);
System.out.println("课程:"+get1.id+" "+get1.name);
}
3.通过迭代器去遍历List
Iterator it = coursese.iterator(); //创建迭代器
while (it.hasNext()) //是否含有元素 不断下一个
{
Course iget1 = (Course) it.next(); //迭代器的.next方法
System.out.println("课程:"+iget1.id+" "+iget1.name);
}
4.通过for each遍历List的元素
for (Object obj1 : coursese){
Course obj = (Course) obj1;
System.out.println("课程:"+obj.id+" "+obj.name);
}
4.修改数据
用List的set()方法
coursese.set(1, new Course(“10”,”毛概”)); // 第一个参数是他的位置
5删除数据
1.通过查找数据元素直接删除
Course remove1 =(Course) coursese.get(0); //获取数据
coursese.remove(remove1);
2.通过下标直接删除
coursese.remove(0);
3删除对象数组中的数据
Course []remove2 = {(Course) coursese.get(0), (Course) coursese.get(1)};