java:list集合的增刪改查
阿新 • • 發佈:2019-01-08
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(); } }