1. 程式人生 > >Java中List的增,刪,改,查

Java中List的增,刪,改,查

package Colection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
//備選課程類
public class ListTest {
	//用於存放備選課程的List
	public List<Object> coursesToSelect;
	
	public ListTest(){
		this.coursesToSelect = new ArrayList<Object>();//初始化
		
	}
	
	//用於往coursesToSelect中新增課程
	public void testAdd(){
		//建立一個課程物件
		Course cr1 = new Course("1", "資料結構");
		coursesToSelect.add(cr1);//呼叫coursesToSelect方法新增課程
		Course temp = (Course) coursesToSelect.get(0);
		System.out.println("添加了課程:"+temp.id+":"+temp.name);
		
		//第一種新增方法
		Course cr2 = new Course("2", "c語言");
		coursesToSelect.add(0, cr2);//在表頭新增cr2
		Course temp2 = (Course)coursesToSelect.get(0);
		System.out.println("添加了課程:"+temp2.id+":"+temp2.name);
		
		//List中的資料可以重複
		coursesToSelect.add(cr1);//呼叫coursesToSelect方法新增課程
		Course temp0 = (Course) coursesToSelect.get(2);
		System.out.println("添加了課程:"+temp0.id+":"+temp0.name);
		
		//以下方法會丟擲陣列下標越界異常
		//Course cr2 = new Course("3", "易語言");
		//coursesToSelect.add(4, cr2);//插入位置大於陣列長度
		
		//第二種新增方法
		Course [] course = {new Course("3", "離散數學"),new Course("4", "組合語言")};//建立一個course物件陣列
		coursesToSelect.addAll(Arrays.asList(course));
		Course temp3 = (Course)coursesToSelect.get(3);
		Course temp4 = (Course)coursesToSelect.get(4);
		System.out.println("添加了兩名課程:"+temp3.id+":"+temp3.name+";"+temp4.id+":"+temp4.name);
		
		//第三種新增方法
		Course [] course2 = {new Course("5", "高等數學"),new Course("6", "大學英語")};
		coursesToSelect.addAll(2, Arrays.asList(course2));
		Course temp5 = (Course)coursesToSelect.get(2);
		Course temp6 = (Course)coursesToSelect.get(3);
		System.out.println("添加了兩名課程:"+temp5.id+":"+temp5.name+";"+temp6.id+":"+temp6.name);
	}
	//通過for迴圈取得List中的元素的方法
	public void testGet(){
		//通過size()方法獲取長度
		System.out.println("有如下課程待選:");
		int size = coursesToSelect.size();
		for (int i = 0; i < size; i++) {
			Course cr = (Course) coursesToSelect.get(i);
			System.out.println("課程:"+cr.id+":"+cr.name);
		}
	}
	
	//通過迭代器遍歷List
	public void testIterator() {
		System.out.println("有如下課程待選(通過迭代器訪問):");
		//通過集合的Iterator方法,取得迭代器例項
		Iterator<Object> it = coursesToSelect.iterator();
		while (it.hasNext()) {
			Course cr = (Course)it.next();
			System.out.println("課程:"+cr.id+":"+cr.name);
		}
	}
	
	//通過for each方法遍歷
	public void testForeach() {
		System.out.println("有如下課程待選(通過foreach訪問):");
		for (Object obj : coursesToSelect) {//元素存入List後為Object型別,輸出後也是Object型別
			Course cr = (Course)obj;//型別強轉
			System.out.println("課程:"+cr.id+":"+cr.name);
		}
	}
	
	//修改List中的元素
	public void testModify() {
		//通過呼叫set()方法來修改相應位置上的元素值
		coursesToSelect.set(4, new Course("7", "毛概"));
	}
	
	//刪除List中的元素
	public void testRemove() {
		//Course cr =(Course) coursesToSelect.get(4);
		//System.out.println("我是課程:"+cr.id+":"+cr.name+". 我將要被刪除");
		//coursesToSelect.remove(cr);//通過獲取值進行刪除
		System.out.println("即將刪除位置4和5上的值.");
		Course[] course ={(Course) coursesToSelect.get(4),(Course) coursesToSelect.get(5)};
		coursesToSelect.removeAll(Arrays.asList(course));
		//coursesToSelect.remove(4);//通過索引值進行刪除
		System.out.println("成功刪除課程!");
		testForeach();
	}
	
	//往List中新增一些奇怪的東西
	public void testType() {
		coursesToSelect.add("我不是課程,只是一個字串.");
	}
	
	public static void main(String[] args) {
		ListTest lt = new ListTest();
		lt.testAdd();
		lt.testType();
		lt.testGet();
		lt.testIterator();
		lt.testForeach();
		lt.testModify();
		lt.testForeach();
		lt.testRemove();
	}
}

執行結果

添加了課程:1:資料結構
添加了課程:2:c語言
添加了課程:1:資料結構
添加了兩名課程:3:離散數學;4:組合語言
添加了兩名課程:5:高等數學;6:大學英語
有如下課程待選:
課程:2:c語言
課程:1:資料結構
課程:5:高等數學
課程:6:大學英語
課程:1:資料結構
課程:3:離散數學
課程:4:組合語言