List集合的增删改查

用List实现的增删查改,适合初学者,仅是对List的学习。

List的实现类是ArrayList;具体代码:

list <泛型> 集合名称; //创建一个list集合
 
构造方法:
 
public 类名(){
类名 a1= 集合名称.ArrayList<泛型>();
 
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
 
/*
 * 存放备选课程类
 */
public class ListTest {
 
	public List courseToSelect;// 新建一个list容器,用于存放备选课程
 
	public ListTest() {
		this.courseToSelect = new ArrayList();//无法实例化list,但可以实例化其子类,然后传入list集合
	}
 
	/*
	 * 添加与查看
	 * 
	 */
	public void testAdd() {
		// 利用2种add方法向集合中添加元素
 
		// 第一种add方法,添加到集合中的最后一位
		course cr1 = new course("1", "数据结构");// 创建课程对象
		courseToSelect.add(cr1);// 调用add方法将课程对象传递进去
		/*
		 * 成功添加课程之后需要给用户打印反馈信息 反馈信息需要将信息提取出来在给打印语句调用
		 */
		// 用get方法将储存信息的对象从容器中取出,0表示下标数,对象在容器中是object类型,所以需要强制类型转换
		
		course temp = (course) courseToSelect.get(0);// 取出指定元素,并且赋值之前进行强制类型转换
		
		System.out.println("成功添加了课程:" + temp.id + "." + temp.name);
 
		// 第二种add方法
		course cr2 = new course("2", "C语言");// 创建课程对象
		courseToSelect.add(0, cr2);// 使用add方法将包含课程信息的对象cr2加入到指定位置
		course temp2 = (course) courseToSelect.get(0);// 取出容器内指定位置的元素
		System.out.println("成功添加了课程:" + temp2.id + "." + temp2.name);
		
//		//重复添加元素,编译器并没报错,说明可以重复添加。
		courseToSelect.add(0, cr1);// 使用add方法将包含课程信息的对象cr2加入到指定位置
		course temp0 = (course) courseToSelect.get(0);// 取出容器内指定位置的元素
		System.out.println("成功添加了课程:" + temp0.id + "." + temp0.name);
		
		/*
		 * 尝试将对象添加到不存在的元素位置
		 */
 
		/*
		 * course cr3 = new course("3", "eclipse");// 创建课程对象 courseToSelect.add(4,
		 * cr3);// 使用add方法将包含课程信息的对象cr2加入到指定位置 运行出bug,bug原因:数组下标越界
		 */
 
		// 2个addAll方法批量添加元素
 
		// 第一种addAll方法,添加整个集合进去,且只能添加list类,所以需要在添加之前将course类转换为list类
 
		course[] course = { new course("3", "离散数学"), new course("4", "汇编语言") };// 创建一个包含2个课程对象的数组
		courseToSelect.addAll(Arrays.asList(course));// 将course数组转换为list类之后添加进去
		course temp3 = (course) courseToSelect.get(2);// 将元素取出
		course temp4 = (course) courseToSelect.get(3);// 将元素取出
		System.out.println("成功添加了两门课程:" + temp3.id + "." + temp3.name + ";" + temp4.id + "." + temp4.name);
 
		// 第二种addAll方法
		course[] course2 = { new course("5", "高等数学"), new course("6", "大学英语") };
		courseToSelect.addAll(2,Arrays.asList(course2));//将course2转为list之后添加到指定位置
		course temp5 = (course) courseToSelect.get(2);// 将元素取出
		course temp6 = (course) courseToSelect.get(3);// 将元素取出
		System.out.println("成功添加了两门课程:" + temp5.id + "." + temp5.name + ";" + temp6.id + "." + temp6.name);
	}
	/*
	 * 查看
	 * 取得list中的所有元素
	 * 用for循环历遍
	 */
	public void testGet() {
		int size= courseToSelect.size();//获取list集合的长度
		System.out.println("有如下课程待选:");
		for(int i=0;i<size;i++) {
			course cr = (course) courseToSelect.get(i);
			System.out.println( cr.id + "." + cr.name);
		}
	}
	/*
	 * 通过Iterator(迭代器)历遍list
	 * 
	 */
	
	public void testTerator() {
		Iterator it=courseToSelect.iterator();//Iterator也是接口类,只能通过list调用其子类iterator实例化
		System.out.println("有如下课程待选(通过迭代器访问):");
		while(it.hasNext()) {//hasNext方法判断list内是否还有元素,则返回真值
			course cr=(course) it.next();//用Iterator带有的next方法历遍list元素
			System.out.println( cr.id + "." + cr.name);
		}
	}
	/*
	 * 迭代器是用来历遍集合元素的,并不能储存任何数据
	 */
 
	/*
	 * 通过for each方法访问集合元素
	 */
	public void testForEach(){
		System.out.println("有如下课程待选(通过for each访问):");
		for(Object obj:courseToSelect) {//定义一个Object类型变量obj,即历遍list中的所有元素
			course er=(course)obj;//取出元素,当一个课程被存进去时是被忽略类型,取出来时需要进行类型转换
			System.out.println( er.id + "." + er.name);
		}
	}
	/*
	 * 使用set方法修改指定元素
	 */
	public void testModify() {
		courseToSelect.set(4, new course("7","毛概"));
	}
	/*
	 * 使用remove方法删除指定元素
	 * remove方法有两个,一个传入变量名,一个传入数组下标,这里只做第二个示例
	 */
	public void remove() {
//		course cr=(course)courseToSelect.get(4);//取出,强制转换类型
//		System.out.println( "我是课程:"+cr.id + "." + cr.name+"“我将被删除”");
//		courseToSelect.remove(cr);//当传入整形时不需要将元素提取出来就可以删除指定元素,括号里填写cr时需要将元素提取出来再删除。
//		System.out.println("删除成功");
//		testForEach();//调用迭代器输出课程
		
//		批量删除元素
		course[] courses= {(course)courseToSelect.get(4),(course)courseToSelect.get(5)};
		
		courseToSelect.removeAll(Arrays.asList(courses));//传入之前转换为list数组
		System.out.println("删除成功");
		testForEach();
	}
	/*
	 * 使用批量删除元素
	 */
	
	public void testType() {
		System.out.println("尝试给list传入其他东西");
		courseToSelect.add("给list传入奇怪的东西");
	}
	
	// 创建main方法测试运行代码
	public static void main(String[] args) {
		ListTest lt = new ListTest();
		lt.testAdd();
		lt.testModify();
		lt.testForEach();
		lt.remove();
//		lt.testType();
//		lt.testGet();
//		lt.testTerator();
//		lt.testForEach();
//		lt.removeAll();
		
	}
}

作者:Roger_CoderLife

链接:https:blog.csdn.net/Roger_CoderLife/article/details/81562240

本文为Roger_CoderLife的原创文章,著作权归作者所有,转载请注明原文出处,欢迎转载!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值