交個作業(yè)?。?!
package com.practice;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
?* 練習(xí):利用Collections.sort()方法對泛型為String的List排序
?*1、創(chuàng)建List<String> stringList=new ArrayList<String>();往其中添加十條隨機(jī)字符串
?*2、每條字符串長度為10以內(nèi)的隨機(jī)整數(shù)
?*3、每條字符串的每個字符為隨機(jī)生成的字符,字符可以重復(fù)
?*4、每條隨機(jī)生成的字符串不可以重復(fù)
?*/
public class CollectionsSort {
?/*
*創(chuàng)建 返回一個規(guī)定長度的字符串的方法
*/
? public static String getRandomString(int length){
????? String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
???? //由Random生成隨機(jī)數(shù)
????? Random random=new Random();
????? //創(chuàng)建一個StringBuffer空對象;
????? StringBuffer sb=new StringBuffer();
????? //循環(huán)length次
????? for(int i=0;i<length;i++){
??????? int number=random.nextInt(str.length()-1);
??????? //將length次產(chǎn)生的字符通過加入到sb中
??????? sb.append(str.charAt(number));
????? }
????? //將承載的StringBuffe字符串轉(zhuǎn)換為String字符串
????? return sb.toString();
? }
?
/*
*創(chuàng)建 含十條隨機(jī)字符串的List并實(shí)現(xiàn)排序
*/
?
? public static void getRandomStringList(){
??????????? List<String> stringList=new ArrayList<String>();
??????????? Random random=new Random();
??????????? String st;
??????????? for(int i=0;i<10;i++) {
??? ???do {
??? ???st=CollectionsSort.getRandomString(random.nextInt(9)+1);
??? ???}while(stringList.contains(st)); //如果stringList包含生成的字符需要重新生成一個
??? ???stringList.add(st);
??? ???System.out.println("將要添加字符串:"+st);
??? ??}?
? ? ?? 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 void main(String[] args) {
?? CollectionsSort.getRandomStringList();
?}
?
}
2018-08-20
public String testRandomString() {
StringBuilder stringBuilder = new StringBuilder();
// 存放所包含字符62位
String container = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
int num = 0;
while (num == 0) {
num = random.nextInt(10);
}
for (int i = 0; i < num; i++) {
int index = random.nextInt(62);
stringBuilder.append(container.charAt(index));
}
return stringBuilder.toString();
}