哪里有問題?一直提示strList改為靜態(tài)static
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class TempTest {
List<StringBuilder> strList=new ArrayList<StringBuilder>();
public static void main(String[] args) {
// TODO Auto-generated method stub
String st="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder strbd=new StringBuilder();
//StringBuilder str;
Random random=new Random();
for (int i = 0; i < 10; i++) {
do {
int length=random.nextInt(10);
for (int j = 0; j < length; j++) {
strbd.append(st.charAt(random.nextInt(62)));
}
} while (strList.contains(strbd));
strList.add(strbd);
}
System.out.println("---------------排序前--------------------");
for(StringBuilder sl : strList)
System.out.println(sl);
Collections.sort(strList);
System.out.println("---------------排序后--------------------");
for(StringBuilder sl : strList)
System.out.println(sl);
}
}
2016-07-28
傳錯了,這個才是
2016-07-28
你查java的API文檔就可以發(fā)現(xiàn),String類實現(xiàn)了Comparable接口,但是StringBuilder類并沒有實現(xiàn)這個接口,所以它不行。還有,其實那時候我是被陷害的,群眾不給機會,我只能先做個猿先,找機會強轉(zhuǎn),重新new成人。
2016-07-28
我后面的理解了,不過并沒有提到String與StringBuilder寫sort方法時不同。而且StringBuilder寫Comparator我也寫出來了。
這些都不重要,我只想問,柯景騰你不是吸毒進去了嗎?
2016-07-28
這個,你下兩節(jié)就可以學(xué)到,為何collections.sort(StringBuilder類)不行。我也是剛知道。。。
2016-07-28
首先你的List<StringBuilder> strList=new ArrayList<StringBuilder>();,得放在main方法里,還有StringBuilder strbd=new StringBuilder();,這個得放在for循環(huán)里,因為如果不放在for循環(huán),他不會重新構(gòu)造個對象,然后當(dāng)一直是同一個對象時,使用它的append方法在后邊添加字符時,你只會產(chǎn)生一個字符串,不會產(chǎn)生十個隨機字符串。然后sort排序為何報錯,我覺得可能是沒有StringBuilder類的排序,雖然它也是屬于String類型。下面是我修改你的代碼后的代碼。
2016-07-27
List<StringBuilder> strList=new ArrayList<StringBuilder>();
你把這一句放進main方法里就可以了,mian方法是個static修飾的方法