package?com.imooc.collection;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.Random;
/**
?*?創(chuàng)建一個(gè)String泛型的List,往其中添加十條隨機(jī)字符串,排序后打印輸出
?*?每條字符串的長(zhǎng)度為10以內(nèi)的隨機(jī)整數(shù)
?*?每條字符串的每個(gè)字符都為隨機(jī)生成的字符,字符可以重復(fù)
?*?每條隨機(jī)字符串不可重復(fù)
?*/
public?class?CollectionsSortExercise?{
/**
?*?獲取一個(gè)隨機(jī)字符串,字符串長(zhǎng)度為10以內(nèi)的隨機(jī)整數(shù)
?*/
public?static?String?getRandomString(int?length)?{
//?定義一個(gè)基字符串base,用于從其中生成隨機(jī)字符串
String?base?=?"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
StringBuilder?sb?=?new?StringBuilder();
Random?random?=?new?Random();
//?定義一個(gè)字符串長(zhǎng)度的變量finalLength,其值為[1,10]間的隨機(jī)值
int?finalLength?=?random.nextInt(length)?+?1;
//?生成一個(gè)字符串對(duì)象sb
for?(int?i?=?0;?i?<?finalLength;?i++)?{
int?index?=?random.nextInt(base.length());
sb.append(base.charAt(index));
}
return?sb.toString();
}
/**
?*?創(chuàng)建一個(gè)String泛型的List,往其中添加獲取的十條隨機(jī)字符串,排序后打印輸出
?*/
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("成功添加一條隨機(jī)字符串:"?+?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();
}
}
2015-08-14
知道了,謝謝
2015-08-05
樓主,求指點(diǎn)!
我認(rèn)為應(yīng)該把你的代碼int?finalLength?=?random.nextInt(length)?+?1; 改為int?finalLength?=?random.nextInt(10)?+?1;把傳進(jìn)來(lái)的int?length刪掉,還有把testSort()方法中的代碼string?=?getRandomString(10);中的10去掉。
這樣做會(huì)不會(huì)好點(diǎn)。。。。還有我不懂這兩種的區(qū)別?求指點(diǎn)!謝謝!
2015-06-19
感謝樓主分享!