主要排序方法sort()
/**
* 添加10条随机字符串
* 每条字符串的长度为10以内的随机整数
* 每条字符串的每条字符都是随机生成的字符,字符可以重复
* 每条随机字符串不可以重复
*/
public void sort() {
//这个字符串表示了所有字符,我们要从中截取字符
String base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuffer sb;
Random random = new Random();
List<String> stringList = new ArrayList<String>();
//循环10次,遍历出10个字符串
for (int i = 0; i < 10; i++) {
//每一次遍历完,sb清空
sb = new StringBuffer();
//长度表示1-10之间的整数,即为字符串的长度
int length = (int) (Math.random() * 9) + 1;
//使用do-while来判断是否有重复的字符串,如果重复则继续循环
do {
for (int j = 0; j < length; j++) {
//radom.nextInt(int n)表示返回一个伪随机数,它是取自此随机数生成器序列的、
//在 0(包括)和指定值n(不包括)之间均匀分布的 int 值
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
} while (stringList.contains(sb));
//循环一次之后将得到的字符串添加到List中
stringList.add(sb.toString());
System.out.println("将要添加的字符串:" + sb.toString());
}
System.out.println("------排序前------");
for (String string : stringList) {
System.out.println("元素:" + string);
}
System.out.println("------排序后------");
Collections.sort(stringList);
for (String string : stringList) {
System.out.println("元素:" + string);
}
}
程序运行的结果:
将要添加的字符串:g9RJ9MnYf
将要添加的字符串:ETJ476m3
将要添加的字符串:hJqc8W
将要添加的字符串:zZm9Z5LpW
将要添加的字符串:mFvC5M7
将要添加的字符串:w68aTjXG
将要添加的字符串:IQ98lS
将要添加的字符串:iAtafK
将要添加的字符串:wWn
将要添加的字符串:xylv62Tw
------排序前------
元素:g9RJ9MnYf
元素:ETJ476m3
元素:hJqc8W
元素:zZm9Z5LpW
元素:mFvC5M7
元素:w68aTjXG
元素:IQ98lS
元素:iAtafK
元素:wWn
元素:xylv62Tw
------排序后------
元素:ETJ476m3
元素:IQ98lS
元素:g9RJ9MnYf
元素:hJqc8W
元素:iAtafK
元素:mFvC5M7
元素:w68aTjXG
元素:wWn
元素:xylv62Tw
元素:zZm9Z5LpW