import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
- 利用collections.sort()方法对泛型为String的List进行排序
- 1.创建完List<String>之后,往其中添加十条随机字符串;
- 2.每条字符串的长度为十以内的随机整数;
- 3.每条字符串的的每个字符都为随机生成的字符,字符可以重复
- 4.每条生成的字符串不可以重复
- @author Jing Wang
-
*/
public class TestRandomTenString {
public List<String> list;public TestRandomTenString() {
this.list = new ArrayList<String>();
}public void addString() {
String k;
for (int i = 0; i < 10; i++) {
do {
// 生成长度为10以内的随机字符串
StringBuilder sb = new StringBuilder();
String str = "01234ABCmopqDEFGnKNO579PQRSTUVW6XYZabcdHIJefghijklrstLMwx8yz";
Random random = new Random();
// 这里加1是为了确保字符串不会为空
int j = random.nextInt(10) + 1;
for (int n = 0; n < j; n++) {
// 根据j的大小生成10以内的随机字符串
sb.append(str.charAt(random.nextInt(str.length())));
}
k = sb.toString();
} while (list.contains(k));
System.out.println("添加第" + (i + 1) + "个随机生成十以内长度的字符串:" + k);
list.add(k);
}
}public void testSort() {
System.out.println("------------------排序前的字符串如下--------------------");
if (!list.isEmpty()) {
for (String string : list) {
System.out.println("排序前第" + (list.indexOf(string) + 1) + "个字符串" + string);
}
}
System.out.println("------------------排序后的字符串如下--------------------");
if (!list.isEmpty()) {
Collections.sort(list);
for (String string : list) {
System.out.println("排序后第" + (list.indexOf(string) + 1) + "个字符串" + string);
}
}}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestRandomTenString trts = new TestRandomTenString();
trts.addString();
trts.testSort();
}
}
运行结果:
添加第1个随机生成十以内长度的字符串:74yZqabn2I
添加第2个随机生成十以内长度的字符串:1gWJIGafL
添加第3个随机生成十以内长度的字符串:l9rjp4pd
添加第4个随机生成十以内长度的字符串:oI4ycY
添加第5个随机生成十以内长度的字符串:0bFf4
添加第6个随机生成十以内长度的字符串:HdebVTE0sS
添加第7个随机生成十以内长度的字符串:ypma4X
添加第8个随机生成十以内长度的字符串:Qk6WAG
添加第9个随机生成十以内长度的字符串:PsaP2
添加第10个随机生成十以内长度的字符串:N
------------------排序前的字符串如下--------------------
排序前第1个字符串74yZqabn2I
排序前第2个字符串1gWJIGafL
排序前第3个字符串l9rjp4pd
排序前第4个字符串oI4ycY
排序前第5个字符串0bFf4
排序前第6个字符串HdebVTE0sS
排序前第7个字符串ypma4X
排序前第8个字符串Qk6WAG
排序前第9个字符串PsaP2
排序前第10个字符串N
------------------排序后的字符串如下--------------------
排序后第1个字符串0bFf4
排序后第2个字符串1gWJIGafL
排序后第3个字符串74yZqabn2I
排序后第4个字符串HdebVTE0sS
排序后第5个字符串N
排序后第6个字符串PsaP2
排序后第7个字符串Qk6WAG
排序后第8个字符串l9rjp4pd
排序后第9个字符串oI4ycY
排序后第10个字符串ypma4X