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

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

完善不重復的ID,但是我發現按照老師說的寫,還是可能出現重復,這是為什么呢

	public?void?testArray4(){
		List<Student>?studentlist=new?ArrayList<Student>();
		List<Integer>?integerlist=new?ArrayList<Integer>();
		Random?random=new?Random();
		Integer?integer;
		for(int?i=0;i<3;i++){
			do{
				integer=random.nextInt(10);
			}while(studentlist.contains(integer));
			integerlist.add(integer);
		}
		studentlist.add(new?Student(integerlist.get(0)+"","chen"));
		studentlist.add(new?Student(integerlist.get(1)+"","wang"));
		studentlist.add(new?Student(integerlist.get(2)+"","zhang"));
	//	studentlist.add(new?Student(1000+"","li"));
		System.out.println("-------排序前-----");
		for?(Student?student?:?studentlist)?{
			System.out.println("元素:"+student.id+":"+student.name);
		}
		Collections.sort(studentlist);
		System.out.println("---------排序后---------");
		for?(Student?student?:?studentlist)?{
			System.out.println("元素:"+student.id+":"+student.name);
		}
		Collections.sort(studentlist,?new?Studentlist());
		System.out.println("---------按照姓名排序后---------");
		for?(Student?student?:?studentlist)?{
			System.out.println("元素:"+student.id+":"+student.name);
		}
	}

其中一個運行結果:

-------排序前-----

元素:8:chen

元素:4:wang

元素:4:zhang

---------排序后---------

元素:4:wang

元素:4:zhang

元素:8:chen

---------按照姓名排序后---------

元素:8:chen

元素:4:wang

元素:4:zhang

正在回答

3 回答

while(studentlist.contains(integer));你仔細看下這里有問題沒???
應該是while(integer.contains(integer)),因為你是要把integerlist作為ID,只要integerlist里沒有重復的數就行了,而你判斷Studentlist.contains(integer)因為這時studentlist內沒有元素,所以會一直成立,因此integerlis有可能會出現相同的數


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

夜還沒黑 提問者

謝謝,是我這里寫錯啦
2016-06-13 回復 有任何疑惑可以回復我~
#2

慕粉1556379847

是while(integerlist.contains(integer))才對吧
2017-03-24 回復 有任何疑惑可以回復我~

我都沒完成這個呢

0 回復 有任何疑惑可以回復我~
????????List<Student>?sdList?=?new?ArrayList<Student>();
		List<Integer>?itgList?=?new?ArrayList<Integer>();
		Random?random?=?new?Random();
		Integer?k;
		for?(int?i?=?0;?i?<?3;?i++)?{
			do?{
				k?=?random.nextInt(10);
			}?while?(itgList.contains(k));
			itgList.add(k);
		}
		
		sdList.add(new?Student(itgList.get(0)+"",?"Tom"));
		sdList.add(new?Student(itgList.get(1)?+?"",?"Lindy"));
		sdList.add(new?Student(itgList.get(2)?+?"",?"Peo"));

Student集合中有多個屬性,調用contains方法好像并不能添加隨機數進去,輸出sdList.size()為0.

用itgList 集合判斷是否包含重復隨機數。

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

夜還沒黑 提問者

我也是重新建立了一個list集合integerlist來取得隨機數,但是隨機數的取值較小時,多跑幾次,你會發現還是會出現重復的情況。
2016-06-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

完善不重復的ID,但是我發現按照老師說的寫,還是可能出現重復,這是為什么呢

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

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

幫助反饋 APP下載

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

公眾號

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