亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

課后練習,大神幫忙看下還需要怎么優化一下

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();

}


}


正在回答

2 回答

看一個StringBuffer,優先使用StringBuilder線程不安全性能略高

0 回復 有任何疑惑可以回復我~

我也是新手,看了你的代碼后!1、可以這樣來優化

for(){ ?//控制生成10條字符串

do{

for(){ ?//控制生成長度10以內的字符串

}

}while();

}

2、你代碼里這地方有點小問題,

baint number = random.nextInt(keySet.length()-1);才對

個人意見哈

0 回復 有任何疑惑可以回復我~
#1

清水J

nextInt()方法隨機生成的int值不包含指定值的;用KeySet.length()-1反而會導致最后一個字符永遠取不到。
2018-02-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

課后練習,大神幫忙看下還需要怎么優化一下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號