在判断testList中是否存在某字符串时,我的写法是否存在问题。运行的结果没有发现问题和报错,还望前辈和同学们指导。
import java.util.*;
public class SortTest
{
private List<String> testList; //定义String泛型的List类
private Random rd = new Random(); //定义随机类rd
public static void main(String[] args)
{
SortTest st = new SortTest(); //创建SortTest类,用于调用各方法
st.addList();
}
public SortTest() //SortTest类的构造方法
{
testList = new ArrayList<String>(); //将testList实例化
}
public void addList()
{
int at,num;
StringBuilder s = new StringBuilder(); //用于存放字符串
String c = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
/**
* 用类似查表法的方式随机生成10个字符串
*/
for(int x=0;x<10;x++)
{
do{
s = new StringBuilder(); //创建新的StringBuilder类对象,存放新的字符串
num = rd.nextInt(10)+1; //随机生成的数[0,10),+1防止字符串的长度为0,
//最大取到10
for(int i=0;i<num;i++)
{
at = rd.nextInt(c.length()-1);
s.append(c.charAt(at)); //在字符串c中取得at位上的字符,追加到s后
}
s.toString(); //将s转化为String
}while(testList.contains(s)); //testList中如果存在与s相同的字符串,则重新生成
testList.add(s.toString()); //将s添加到testList中
}
System.out.println("--------排序前--------");
for (String string : testList) //foreach打印
{
System.out.println("字符串:"+string);
}
Collections.sort(testList);
System.out.println("--------排序后--------");
for (String string : testList)
{
System.out.println("字符串:"+string);
}
}
}