課后練習,大神幫忙看下還需要怎么優化一下
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();
}
}
2018-03-18
看一個StringBuffer,優先使用StringBuilder線程不安全性能略高
2018-01-19
我也是新手,看了你的代碼后!1、可以這樣來優化
for(){ ?//控制生成10條字符串
do{
for(){ ?//控制生成長度10以內的字符串
}
}while();
}
2、你代碼里這地方有點小問題,
baint number = random.nextInt(keySet.length()-1);才對
個人意見哈