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

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

注釋寫得較多,幫助理解

package?com.imooc.collection;

import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.Random;

/**
?*?創建一個String泛型的List,往其中添加十條隨機字符串,排序后打印輸出
?*?每條字符串的長度為10以內的隨機整數
?*?每條字符串的每個字符都為隨機生成的字符,字符可以重復
?*?每條隨機字符串不可重復
?*/

public?class?CollectionsSortExercise?{
	
	/**
	?*?獲取一個隨機字符串,字符串長度為10以內的隨機整數
	?*/
	public?static?String?getRandomString(int?length)?{
		//?定義一個基字符串base,用于從其中生成隨機字符串
		String?base?=?"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
		StringBuilder?sb?=?new?StringBuilder();
		Random?random?=?new?Random();
		//?定義一個字符串長度的變量finalLength,其值為[1,10]間的隨機值
		int?finalLength?=?random.nextInt(length)?+?1;
		//?生成一個字符串對象sb
		for?(int?i?=?0;?i?<?finalLength;?i++)?{
			int?index?=?random.nextInt(base.length());
			sb.append(base.charAt(index));
		}
		return?sb.toString();
	}

	/**
	?*?創建一個String泛型的List,往其中添加獲取的十條隨機字符串,排序后打印輸出
	?*/
	public?void?testSort()?{
		List<String>?stringList?=?new?ArrayList<String>();
		for?(int?i?=?0;?i?<?10;?i++)?{
			String?string;
			do?{
				string?=?getRandomString(10);
			}?while?(stringList.contains(string));
			stringList.add(string);
			System.out.println("成功添加一條隨機字符串:"?+?string);
		}
		System.out.println("--------------排序前--------------");
		for?(String?string?:?stringList)?{
			System.out.println("字符串:"?+?string);
		}
		Collections.sort(stringList);
		System.out.println("--------------排序后--------------");
		for?(String?string?:?stringList)?{
			System.out.println("字符串:"?+?string);
		}
	}
	
	public?static?void?main(String[]?args)?{
		//?TODO?Auto-generated?method?stub
		CollectionsSortExercise?cse?=?new?CollectionsSortExercise();
		cse.testSort();
	}

}


正在回答

3 回答

知道了,謝謝

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

樓主,求指點!

我認為應該把你的代碼int?finalLength?=?random.nextInt(length)?+?1; 改為int?finalLength?=?random.nextInt(10)?+?1;把傳進來的int?length刪掉,還有把testSort()方法中的代碼string?=?getRandomString(10);中的10去掉。

這樣做會不會好點。。。。還有我不懂這兩種的區別?求指點!謝謝!

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

五竹 提問者

length是getRandomString方法簽名的一部分,一般使用形參,而在調用這個方法的時候,再把實參傳進去,這樣更加規范一點,否則就是硬編碼了,無法實現代碼復用o(* ̄▽ ̄*)ブ
2015-08-14 回復 有任何疑惑可以回復我~

感謝樓主分享!

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

舉報

0/150
提交
取消

注釋寫得較多,幫助理解

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

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

幫助反饋 APP下載

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

公眾號

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