package com.kandy.imoockecheng.listmap;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class StringSort {
public static void main(String[] args) {
/*
* 随机生成10条长度10以内,不可重复的字符串,每条字符串内的字符可以重复
* 为节省String消耗,全部使用 StringBuilder
*/
//定义字符串条数
int count = 10;
//定义最大字符串的长度
int maxLength = 10;
//定义备选字符N个
StringBuilder stringBuilder = new StringBuilder("ABCDEFGHIJGLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890");
//定义被选出来的字符串
StringBuilder stringSel = new StringBuilder();
//创建字符串List集合
List<String> strList = new ArrayList<>();
//do循环控制字符串的条数
do {
//随机字符串的长度(10以内)
int rdLong = new Random().nextInt(maxLength);
//for循环随机拼凑字符的和长度
for (int i = 0; i < rdLong; i++) {
//随机获取备选字符串某个字符的索引位置
int index = new Random().nextInt(stringBuilder.length());
//按索引位置选出一个字符,把随机生成的字符追加到stringSel
stringSel.append(stringBuilder.charAt(index));
}
//如果包含字符串,重新生成随机字符串
if(strList.contains(stringSel.toString())) continue;
//把随机生成的字符串添加到strList中
strList.add(stringSel.toString());
//清空stringSel
stringSel.delete(0,stringSel.length()-1);
} while (strList.size() != count); //10条后跳出do循环
System.out.println("*******排序前************");
strList.forEach(System.out::println);
//进行排序
Collections.sort(strList);
System.out.println("*******排序后************");
strList.forEach(System.out::println);
}
}