package com.imooc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
- 运用Collections中的sort()方法,
- 对Integer泛型,String泛型以及其他类型的泛型进行排序
- @author Administrator
-
*/
public class CollectionsTest {//定义一个随机的类变量
private static Random random = new Random();/**
- 对String泛型排序的版本2.0
- @param args
*/
public static void testStringSort2(){
//创建String泛型的列表
List<String> stringList = new ArrayList<String>();
//创建一个String对象
String str;
//运用for循环,依次添加10个字符串
for(int i = 0;i < 10;i++){
//使用do-while循环避免产生重复的字符串
do{
//随机生成由大小写字母及数字组成的字符串
str = generateStr();
}while(stringList.contains(str));
//往列表中添加随机字符串
stringList.add(str);
}
System.out.println("**排序前****");
for (String string : stringList) {
System.out.println("随机生成的字符串为:" + string);
}
Collections.sort(stringList);
System.out.println("**排序后*****");
for (String string : stringList) {
System.out.println("随机生成的字符串为:" + string);
}
}
//生成随机字符串的方法
public static String generateStr(){
//定义一个StringBuilder
StringBuilder sb = new StringBuilder();
//生成的字符串长度是随机的
int length = random.nextInt(10);
//循环遍历
for(int i = 0;i < length;i++){
//定义一个整形变量,记录字符的类型
int j = random.nextInt(3);
switch(j){
case 0:
sb.append(generateDigital());
break;
case 1:
sb.append(generateCapital());
break;
case 2:
sb.append(generateLowercase());
}
}
return sb.toString();
}//生成10以内的随机整数
public static int generateDigital(){
return random.nextInt(10);
}//生成A-Z的大写字母
public static char generateCapital(){
return (char) ('A'+random.nextInt(26));
}//生成a-z的大写字母
public static char generateLowercase(){
return (char) ('a'+random.nextInt(26));
}public static void main(String[] args) {
CollectionsTest ct = new CollectionsTest();
// ct.testIntegerSort();
// ct.testStringSort();
testStringSort2();
}
}