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

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

看了Haki_TripleSword和zczhangcong1992兩位同學的代碼進行仿寫,發現還是ASCII查找執行效率高

因為沒有思路,看了Haki_TripleSword和zczhangcong1992兩位同學的代碼進行仿寫,發現還是ASCII查找執行效率高。

另外,兩位同學都想到了,通過多次調用random.nextInt()來控制字符串長度及所選用字符,以及用StringBuilder追加字符,我在這里缺乏想象力,要多多學習。


我改寫的方法如下:

/**

* 3.對String泛型的List進行排序

* 創建一個String泛型的List,添加十條隨機的String元素

* 每條字符串的長度為10以內的隨機整數

* 每條字符串的每個字符都為隨機生成的字符,字符可以重復

* 每條隨機字符串不可重復

* 調用Collections.sort()方法對其進行排序,再次輸出排序后順序

*/

public void testSort3(){

long startTime = System.nanoTime(); ?

List<String> stringList = new ArrayList<String>();

String base = "abcdefghijklmnopqrstuvwzyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";

Random random = new Random();

StringBuilder sb = new StringBuilder();

String str=new String();

//循環添加10條隨機字符串

for(int i = 0;i<10;i++){

do{

//清空str

sb.delete(0, sb.length());

//限制字符串長度為1~9

for(int j =0;j<random.nextInt(9)+1;j++)

{

//從base中隨機取字符添加到字符串

sb.append(base.charAt(random.nextInt(62)));

}

str=sb.toString();

}while(stringList.contains(str));

stringList.add(str);

System.out.println("在List中成功添加了字符串:"+str);

}

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

}

long endTime = System.nanoTime(); ?

? ? ? ? System.out.println("在String base中取數添加耗費時間: " + (endTime - startTime));?

}

發現這種方法執行,需要時間為

在String base中取數添加耗費時間: 3359954

而Haki_TripleSword同學的方法需要時間少一大半:

用ASCII碼和swtich語句取數添加耗費時間: 1397452


正在回答

1 回答

你真的很認真,非常不錯。

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

舉報

0/150
提交
取消

看了Haki_TripleSword和zczhangcong1992兩位同學的代碼進行仿寫,發現還是ASCII查找執行效率高

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

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

幫助反饋 APP下載

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

公眾號

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