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(); } }
int length = random.nextInt(10);
随机数的范围是[0,10),前闭后开。
当length取值为0时,new StringBuffer().toString()的值就是空值""。