package com.imooc_collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
/*
* 利用Colletions.sort()方法对泛型为String类型的list进行排序版本2:
* 1、创建List<String>之后,往其中添加十条随机字符串 2、每条字符串的长度为10以内的随机整数
* 3、每条字符串的每个字符都为随机生成的字符,字符可以重复 4、每条随机字符串不可以重复
*/
public class testSort2 {
private Random random;
private List<String> list;
public testSort2() {
// TODO 自动生成的构造函数存根
random = new Random();
list = new LinkedList<>();
}
// 随机生成字符串方法
public String randomAddString() {
String keySet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int keyLength = random.nextInt(10);
StringBuffer sbf = new StringBuffer();
for (int i = 0; i <= keyLength; i++) {
int number = random.nextInt(keySet.length());
sbf.append(keySet.charAt(number));
}
return sbf.toString();
}
// 往List中添加随机字符串
public void addList() {
for (int i = 0; i < 10; i++) {
String addStr;
do {
addStr = randomAddString();
} while (list.contains(addStr));
list.add(addStr);
}
System.out.println("——————排序前——————");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println("List集合中元素有:\'" + it.next()+"\'");
}
System.out.println("——————排序后——————");
Collections.sort(list);
for (String integer2 : list) {
System.out.println("元素\'" + integer2+"\'");
}
}
public static void main(String[] args) {
testSort2 ts = new testSort2();
ts.addList();
}
}
看一个StringBuffer,优先使用StringBuilder线程不安全性能略高
我也是新手,看了你的代码后!1、可以这样来优化
for(){ //控制生成10条字符串
do{
for(){ //控制生成长度10以内的字符串
}
}while();
}
2、你代码里这地方有点小问题,
baint number = random.nextInt(keySet.length()-1);才对
个人意见哈