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

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

三個不重復的整數還有更簡潔的方法嘛?

// 三個不重復的整數
?? ??? ?while (i == j)
?? ??? ?{
?? ??? ??? ?j = random.nextInt(1000);
?? ??? ?}
?? ??? ?while (i == k || k == j)
?? ??? ?{
?? ??? ??? ?k = random.nextInt(1000);
?? ??? ?}

?? ??? ?studentList.add(new Student(i + "", "Mike"));
?? ??? ?studentList.add(new Student(j + "", "Angela"));
?? ??? ?studentList.add(new Student(k + "", "Lucy"));
?? ????



我感覺這個實現太長了,誰有更簡潔的方法來實現

正在回答

8 回答

如圖,加油http://img1.sycdn.imooc.com//5daa90790001cce508500438.jpg

0 回復 有任何疑惑可以回復我~
	/**
	*?3.對其他類型泛型的List進行排序,以Student為例。
	*/
	public?void?testSort3()?{
	????List<Student>?studentList?=?new?ArrayList<Student>();
	????Random?random?=?new?Random();
	????
	????int?f?=?random.nextInt(1000);
	????studentList.add(new?Student(f?+?"",?"Mike"));
	????
	????do
	????????f?=?random.nextInt(1000);
	????while?(studentList.contains(f));
	????studentList.add(new?Student(f?+?"",?"Zom"));
	????
	????do
	????????f?=?random.nextInt(1000);
	????while?(studentList.contains(f));
	????studentList.add(new?Student(f?+?"",?"Jason"));
	????
	????System.out.println("---------HOME----------");
	????for?(Student?student?:?studentList)?{
	????????System.out.println("學生:"?+?student.getId()?+?","?+?student.getName());
	????}
	????
	????System.out.println("---------END----------");
	????Collections.sort(studentList);
	????for?(Student?student?:?studentList)?{
	????????System.out.println("學生:"?+?student.getId()?+?","?+?student.getName());
	????}
	}
	
	不知道我這個算不算簡單,
	使用了ArrayList的contains方法判斷元素是否重復,
	元素重復返回true。


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

zooeaa

好像哪里不對
2019-05-25 回復 有任何疑惑可以回復我~
#2

qq_將就_2

mike的已經隨機生成了數字,下面循環又隨機生成,你這邊有些問題吧
2019-09-03 回復 有任何疑惑可以回復我~

? ? ? public void testSort3(){

? ?List<Integer> integerList = new ArrayList<Integer>();

? ? ?List<Student> studentList = new ArrayList<Student>();

? ? ?Random random=new Random();

? ? ?Integer k;

? ? ? ? for(int i=0;i<3;i++){

? ? ? ?do{ k=random.nextInt(100);

? ? ?

? ? ?}while(integerList.contains(k));

? ? integerList.add(k);

? ? ? }

? ? ? ??

? ? ?studentList.add(new Student(integerList.get(0)+"","Mike"));

? ? ?studentList.add(new Student(integerList.get(1)+"","Angela"));

? ? ?studentList.add(new Student(integerList.get(2)+"","Lucy"));

? ?腦子笨,把testSort1合并進來用了

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

霸氣小肆毛

老哥,我用你的方法,integerList.get(0)會提示The constructor Student(Integer, String) is undefined
2019-03-11 回復 有任何疑惑可以回復我~
#2

墨錦 回復 霸氣小肆毛

你好老鐵,請檢查是否自己在項目中創建了學生類。
2019-03-14 回復 有任何疑惑可以回復我~
int?i;
int?j;
int?k;
do?{
?????i?=?random.nextInt(10);
?????j?=?random.nextInt(10);
?????k?=?random.nextInt(10);
}while?(i==j||i==k||j==k);

不知道我的這個是不是簡單易懂呢

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

qq_將就_2

你這個分別定義,如果產生上百個,就不能用這個方式啊親?
2019-09-03 回復 有任何疑惑可以回復我~
public?void?test(){
Set<Integer>set=new?HashSet<Integer>();
Random?random=new?Random();
while(set.size()<3){
int?i=random.nextInt(1000);
set.add(i);
}
這個就是利用set的不重復性來創建三個不重復的整數。
但是我不知道該怎么樣才能將數字帶入替換student的ID屬性


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

或許可以利用hashSet不可重復的特性

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

while(set1.size()<3){

set1.add(random.nextInt(1000));

}

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

當然最好是不影響原來的代碼的情況下。

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

舉報

0/150
提交
取消

三個不重復的整數還有更簡潔的方法嘛?

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

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

幫助反饋 APP下載

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

公眾號

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