自己參考著寫的《隨機(jī)生成不重復(fù)字符串》代碼
public?static?void??testSort3(){ ???List<String>?list3?=?new?ArrayList<String>();//儲(chǔ)存所有字符串 ???Set<String>??setString?=?new?HashSet<String>();//用于選擇不同的字符串 ???String?newst?=?new?String();???????????????????//儲(chǔ)存當(dāng)前得到的字符串 ??? ???Random??rand?=?new?Random();???????//產(chǎn)生10以內(nèi)隨機(jī)數(shù)。用于字符串控制長(zhǎng)度 ???StringBuffer?sb=?new?StringBuffer();???//?可以變動(dòng)的字符型 ???StringBuffer??buf?=?new?StringBuffer("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");???????????//?字符組合的基 ??? ?????int?m?=?0;??????????????//m控制字符串的數(shù)量 ?????while?(m<10){ ????do{ ?//字符串長(zhǎng)度在10以內(nèi)。達(dá)到該長(zhǎng)度前進(jìn)行for循環(huán) ????for(int?i?=?0;?i?<?rand.nextInt(10);?i?++){ ????????//定義一個(gè)變量,取得buf字符組合基的長(zhǎng)度 ?int?num?=?buf.length(); //往空的字符串?sb?的末端加入單個(gè)元素。該元素從buf組合基中隨機(jī)取得 ???????sb.append(buf.charAt(rand.nextInt(num))); ???????????????????????}//do結(jié)束 //將sb可變動(dòng)類型轉(zhuǎn)換成字符串型 ??????????????????????? ???????????newst=?sb.toString(); ???????????//若setString中已包含該對(duì)象,重新進(jìn)行do操作 ?}while?(setString.contains(newst)); ?//往Set接口下的setString中添加該對(duì)象 ????setString.add(newst); ???//往List接口下的list3中添加該字符串? ??list3.add(newst); ?? ?System.out.println("成功添加:"+newst); ? ?//可變更類型的??sb?字符串?清空,用于下一次操作 ?sb=?new?StringBuffer(); ?m++; ?} ?System.out.println("============排序前=========="); for?(String?in?:?list3){ System.out.println("元素:"+?in); } System.out.println("----------------------排序后---------------------"); Collections.sort(list3); ???????????????????????for?(String?in?:?list3){ System.out.println("元素:"+?in); } ? }
自己寫的代碼。如有不足請(qǐng)指教一二。十分感謝!
2015-12-29