private?void?testSort3()?{
????final?String?chooseString?=?"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
????Random?random?=?new?Random();
????List<String>?stringList?=?new?ArrayList<>();
????int?charNum;
????int?stringLen;
????for?(int?j?=?0;?j<10;?j++)?{
????????StringBuilder?str?=?new?StringBuilder();
????????stringLen?=?random.nextInt(10)?+?1;????????//?本次字符串的長度
????????do?{
????????????for?(int?i?=?0;?i<stringLen;?i++){
????????????????charNum?=?random.nextInt(chooseString.length()?-?1);???//?隨機獲取一個字符
????????????????str.append(chooseString.charAt(charNum));?????????????????????//?組成字符串
????????????}
????????}?while?(stringList.contains(str.toString()));
????????stringList.add(str.toString());
????}
????for?(String?s?:?stringList)?{
????????System.out.println(s);
????}
????System.out.println("--------------------?排序后?------------------------");
????Collections.sort(stringList);
????for?(String?s?:?stringList)?{
????????System.out.println(s);
????}
}
2018-11-27
?random.nextInt(chooseString.length()?-?
1
);nextInt(int)本來就是生成0-int之間的值不包括int的值,就相當于0-
chooseString.length()?-?
1,你將int的值設置為
chooseString.length()?-?
1其實是只能隨機出0-
chooseString.length()?- 2的值,所以你最后一個字符9不可能出現