ygKan
2019-05-12 12:41
public void testSort3(){
List<String> stringList =new ArrayList<String>();
String se ="zxcvbnmasdfghjklqwertyuiop1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
StringBuilder st =new StringBuilder();
Random random =new Random();
int b ;
for(int i =0;i<10;i++){
b=random.nextInt(10)+1;
do{
for(int j =0;j<b;j++){
int k =random.nextInt(se.length());
st.append(se.charAt(k));
}
}while(stringList.contains(st));
}
stringList.add(st.toString());
System.out.println("--------排序前------");
for (String string : stringList) {
System.out.println("元素:"+string);
}
System.out.println("--------排序后------");
Collections.sort(stringList);
for (String string : stringList) {
System.out.println("元素:"+string);
}
}
stringList.add(st.toString());
这行代码要写到第一个循环的最底部,不然你这个就添加一个很长的字符串对象进List
另外新建StringBuilder对象要放到do循环跟第二个for循环之间,每次获取下一个随机字符串前,都要初始化StringBuilder对象去清空,不然前面获取的字符串一直都在。
StringBuilder st =new StringBuilder();
放到第一个for循环里,作用:每生成一个字符串,清空一次。
你生成一个,应该把你st里面的值清空,不然他就一直附加
nice,写的很好,学了多久呀这么厉害
Java入门第三季
409792 学习 · 4340 问题
相似问题