package com.imooc.collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
* 将要完成:
* 1、通过Collections.sort()方法,对Integer泛型的List进行排序
* 2、对String泛型的 List进行排序
* 3、对其他类型的泛型的例子进行排序,一Student类型为例
* @author Administrator
*
*/
public class CollectionsTest2 {
public Random random = new Random();
/**
* 创建完List之后往其中添加10条随机字符串
* 每条字符串的长度为10以内的随机整数
* 每条字符串的每个字符都是随机生成的,可以重复
* 每条随机字符串不可重复
* @param args
*/
public void testSort3(){
List<String> stringList = new ArrayList<String>();
int i = 0;
do{
String str = getRandomString();
if((str==null)||(stringList.contains(str)))
continue;
i++;
stringList.add(str);
System.out.println("成功添加字符串 :"+str);
}while(i<9);
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);
}
}
/**
* 生成一个长度随机随机字符串
* @param args
*/
public String getRandomString(){
int length = random.nextInt(10);
//sb用来存储每一个字符串
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
//num=0时随机生成A-Z;当num=1时随机生成a-z;当num=2时随机生成0-9
int num = random.nextInt(3);
long result =0;
switch (num) {
case 0:
result = Math.round(Math.random()*25+65);
sb.append(String.valueOf(result));
break;
case 1:
result = Math.round(Math.random()*25+97);
sb.append(String.valueOf(result));
break;
case 2:
sb.append(random.nextInt(10));
break;
default:
break;
}
}
return sb.toString();
}
public static void main(String[] args) {
CollectionsTest ct = new CollectionsTest();
ct.testSort3();
}
}