java中集合list的增删改查

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();
	}

}

运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值