亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

刪除集合中的元素

為什么刪除集合中的元素,首先要定義一個數組,然后調用集合的removeAll() ?然后把這個數組轉換成list傳進去,這是為什么呢

正在回答

4 回答

因為list在循環中的時候是不可以刪除它的元素的
其實更簡單的就是使用迭代器Iterator, 然后用迭代器remove

0 回復 有任何疑惑可以回復我~
#1

qq_咦呆著啊_0 提問者

非常感謝!
2016-05-10 回復 有任何疑惑可以回復我~
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.Iterator;
import?java.util.List;
import?java.util.Scanner;

import?org.omg.CORBA.PUBLIC_MEMBER;
public?class?ListTest?{

	public?List?listSelect;
	public?ListTest(){
		this.listSelect=new?ArrayList();//因為List是個借口不能直接實例化,就運用到了這個接口的一個實現類
		???????????????????????????//ArrayList的實現類趨勢線這個接口;
	}
	public?void?listAdd(){
		chilCourse?chilCour=new?chilCourse("D1","DW");
		
		Course?[]courses={
//				chilCour,
				new?Course("A1","大學英語"),new?Course("A2","大學語文"),
				new?Course("B1","高等數學"),new?Course("C1",?"線性代數"),
				new?Course("C2",?"高等代數")};
				listSelect.addAll(Arrays.asList(courses));
				}
				}
		public?void?remove(){
		System.out.println("請輸入要刪除的課程號碼");
		Scanner?input=new?Scanner(System.in);
		String?str1=input.next();
		for(int?i=0;i<listSelect.size();i++){
			Course?cour=(Course)?listSelect.get(i);
			String?str2=(cour).getId();
			if(str1.equalsIgnoreCase(str2)){
				System.out.println("您即將要刪除的課程名是:"+cour.getName()+"\n確定刪除嗎?");
				String?str3=input.next();
				if(str3.equalsIgnoreCase("t")){
//					listSelect.remove(i);
					listSelect.remove(cour);
					System.out.println("刪除成功!");
					iter();
				}
				else??
					return;
			}else??
				continue;
		}
	}
	public??void?iter(){
		?Iterator?it=listSelect.iterator();
		while(it.hasNext()){
			Object?c?=?it.next();
				if((c.getClass()).getName().equalsIgnoreCase("Course")){
					Course?cw=(Course)?c;
					System.out.println(cw.getId()+
							""+cw.getName());
				}
		//當添加了其他類型的對象進去的遍歷方法;
//			if((c.getClass()).getName().equalsIgnoreCase("Student")){
//				Student?stu=(Student)?c;
//				System.out.println(stu.getId()+
//						""+stu.getName());}
		}
		}
		public?static?void?main(String[]?args)?{
???????????ListTest?listTest=new?ListTest();
???????????listTest.listAdd();
???????????System.out.println();
????????????listTest.iter();
????????????listTest.remove();
	}

}			

還可以添加循環一直進行輸入的哈,

1 回復 有任何疑惑可以回復我~
#1

如果繁星能來到我身邊

比較粗糙。還要改進的地方還有很多-.-//
2016-05-10 回復 有任何疑惑可以回復我~
#2

qq_咦呆著啊_0 提問者 回復 如果繁星能來到我身邊

你為何如此的牛B
2016-05-10 回復 有任何疑惑可以回復我~
#3

如果繁星能來到我身邊 回復 qq_咦呆著啊_0 提問者

我也是菜鳥,共勉共勉。。。
2016-05-10 回復 有任何疑惑可以回復我~
#4

qq_隨想之風_03202251

真的很贊!
2016-08-16 回復 有任何疑惑可以回復我~
查看1條回復

你要刪除的是那個集合中的元素,肯定要先取出來(由于不是泛型還需)強制轉換成Course類型的,而且removeAll(collection c)傳進去的是list的實例吧,你還需要把數組變成list對象。最后運用這個方法。

http://img1.sycdn.imooc.com//57315f940001d84310760220.jpg

我覺得還可以直接讓用戶輸入要刪除的課程號或者名字,用remove()直接進行刪除,當然怎樣實現可以想一下。

0 回復 有任何疑惑可以回復我~

想清空list序列集合中的所有元素可以用clear()方法,此API函數返回值是void。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

刪除集合中的元素

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號