java中集合list的增删改查
文中出现的类在本人的list增加博客
package collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
* 20190812
* @author 王炳祥
*备选课程类
*/
public class ListTest {
/**
* 用于存放备选课程的list
*/
public List bxkc;
public ListTest() {
this.bxkc = new ArrayList();
}
/*
* 用于往bxkc中添加备选课程
*/
public void testAdd() {
//创建课程类的实例 调用其构造器
Course co1 = new Course("1","数据结构");
//调用bxkc的add方法 进行添加
bxkc.add(co1);
//检查是否添加
Course temp = (Course) bxkc.get(0);
System.out.println("添加了课程"+temp.id+":"+temp.name);
/**
* 第二种add方法
*/
Course co2 = new Course("2","c语言");
bxkc.add(0, co2);
//检查是否添加
Course temp2 = (Course) bxkc.get(0);
System.out.println("添加了课程"+temp2.id+":"+temp2.name);
// Course co3 = new Course("2","c语言");
// //报错 报错 报错 数组下标越界
// bxkc.add(5, co3);
// Course temp3 = (Course) bxkc.get(0);
// System.out.println("添加了课程"+temp3.id+":"+temp3.name);
//创建一个课程数组
Course[] cou = {new Course("3","离散数学"),new Course("4","python")};
/*
* 另外两种添加方法addall
*/
bxkc.addAll(Arrays.asList(cou));
Course temp3 = (Course) bxkc.get(2);
Course temp4 = (Course) bxkc.get(3);
System.out.println("添加了两门课程"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);
/**
* 插入指定位置的addall
*/
Course[] cou2 = {new Course("5","高等数学"),new Course("6","php")};
bxkc.addAll(2, Arrays.asList(cou2));
Course temp5 = (Course) bxkc.get(2);
Course temp6 = (Course) bxkc.get(3);
System.out.println("添加了两门课程"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);
}
/**
* 取得list中元素的方法
*
*/
public void testGet() {
//获取bxkc 的长度
int leg = bxkc.size();
System.out.println("备选课程有:");
//遍历数组
for(int i = 0;i<leg;i++) {
//用get方法取出
Course c1 = (Course) bxkc.get(i);
System.out.println("课程:"+c1.id+":"+c1.name);
}
}
/**
* 通过迭代器来遍历list(迭代器用来遍历集合中元素的,本身不具备存储功能,可以说依赖集合存在)
* @param args
*/
public void testIterator() {
//通过集合的iterator方法,取得迭代器的实例
Iterator it = bxkc.iterator();
System.out.println("备选课程有(迭代器方法):");
while(it.hasNext()) {
Course c1 = (Course)it.next();
System.out.println("课程:"+c1.id+":"+c1.name);
}
}
/**
* 用for each方法访问集合元素
* @param args
*/
public void testForeach() {
System.out.println("备选课程有(for each方法):");
//定义一个Object的变量obj 遍历bxkc集合取出来作为object的变量
//当一个元素存入集合时类型被忽略 当Object用 需要强制类型转换
for(Object obj:bxkc) {
Course c1 = (Course) obj;
System.out.println("课程:"+c1.id+":"+c1.name);
}
}
/**
* 修改list中的元素 set方法
* @param args
*/
public void testModify() {
bxkc.set(4, new Course("7","毛概"));
}
/**
* 删除list中的元素
* @param args
*/
public void testRemove() {
//Course cr = (Course) bxkc.get(4); 删除指定位置的元素
// System.out.println("即将删除4位置上的课程");
// bxkc.remove(4);//此方法注意界限问题
Course[] courses = {(Course) bxkc.get(4),(Course) bxkc.get(5)};
//通过工具类Arrays把courses数组转化为集合
bxkc.removeAll(Arrays.asList(courses));//删除集合中所有的元素
System.out.println("成功删除课程");
testForeach();
}
public static void main(String[] args) {
ListTest li = new ListTest();
li.testAdd();
li.testGet();
li.testIterator();
li.testForeach();
li.testModify();
li.testIterator();
li.testRemove();
}
}
运行结果如下: