qq_A_229
2018-08-19 16:02
package com.practice;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
* 练习:利用Collections.sort()方法对泛型为String的List排序
*1、创建List<String> stringList=new ArrayList<String>();往其中添加十条随机字符串
*2、每条字符串长度为10以内的随机整数
*3、每条字符串的每个字符为随机生成的字符,字符可以重复
*4、每条随机生成的字符串不可以重复
*/
public class CollectionsSort {
/*
*创建 返回一个规定长度的字符串的方法
*/
public static String getRandomString(int length){
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//由Random生成随机数
Random random=new Random();
//创建一个StringBuffer空对象;
StringBuffer sb=new StringBuffer();
//循环length次
for(int i=0;i<length;i++){
int number=random.nextInt(str.length()-1);
//将length次产生的字符通过加入到sb中
sb.append(str.charAt(number));
}
//将承载的StringBuffe字符串转换为String字符串
return sb.toString();
}
/*
*创建 含十条随机字符串的List并实现排序
*/
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();
}
}
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();
}
Java入门第三季
409792 学习 · 4340 问题
相似问题