哪里有問(wèn)題?一直提示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
傳錯(cuò)了,這個(gè)才是
2016-07-28
你查java的API文檔就可以發(fā)現(xiàn),String類(lèi)實(shí)現(xiàn)了Comparable接口,但是StringBuilder類(lèi)并沒(méi)有實(shí)現(xiàn)這個(gè)接口,所以它不行。還有,其實(shí)那時(shí)候我是被陷害的,群眾不給機(jī)會(huì),我只能先做個(gè)猿先,找機(jī)會(huì)強(qiáng)轉(zhuǎn),重新new成人。
2016-07-28
我后面的理解了,不過(guò)并沒(méi)有提到String與StringBuilder寫(xiě)sort方法時(shí)不同。而且StringBuilder寫(xiě)Comparator我也寫(xiě)出來(lái)了。
這些都不重要,我只想問(wèn),柯景騰你不是吸毒進(jìn)去了嗎?
2016-07-28
這個(gè),你下兩節(jié)就可以學(xué)到,為何collections.sort(StringBuilder類(lèi))不行。我也是剛知道。。。
2016-07-28
首先你的List<StringBuilder> strList=new ArrayList<StringBuilder>();,得放在main方法里,還有StringBuilder strbd=new StringBuilder();,這個(gè)得放在for循環(huán)里,因?yàn)槿绻环旁趂or循環(huán),他不會(huì)重新構(gòu)造個(gè)對(duì)象,然后當(dāng)一直是同一個(gè)對(duì)象時(shí),使用它的append方法在后邊添加字符時(shí),你只會(huì)產(chǎn)生一個(gè)字符串,不會(huì)產(chǎn)生十個(gè)隨機(jī)字符串。然后sort排序?yàn)楹螆?bào)錯(cuò),我覺(jué)得可能是沒(méi)有StringBuilder類(lèi)的排序,雖然它也是屬于String類(lèi)型。下面是我修改你的代碼后的代碼。
2016-07-27
List<StringBuilder> strList=new ArrayList<StringBuilder>();
你把這一句放進(jìn)main方法里就可以了,mian方法是個(gè)static修飾的方法