司空曙
2015-09-01 10:39
public static void testSort3(){ List<String> list3 = new ArrayList<String>();//储存所有字符串 Set<String> setString = new HashSet<String>();//用于选择不同的字符串 String newst = new String(); //储存当前得到的字符串 Random rand = new Random(); //产生10以内随机数。用于字符串控制长度 StringBuffer sb= new StringBuffer(); // 可以变动的字符型 StringBuffer buf = new StringBuffer("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"); // 字符组合的基 int m = 0; //m控制字符串的数量 while (m<10){ do{ //字符串长度在10以内。达到该长度前进行for循环 for(int i = 0; i < rand.nextInt(10); i ++){ //定义一个变量,取得buf字符组合基的长度 int num = buf.length(); //往空的字符串 sb 的末端加入单个元素。该元素从buf组合基中随机取得 sb.append(buf.charAt(rand.nextInt(num))); }//do结束 //将sb可变动类型转换成字符串型 newst= sb.toString(); //若setString中已包含该对象,重新进行do操作 }while (setString.contains(newst)); //往Set接口下的setString中添加该对象 setString.add(newst); //往List接口下的list3中添加该字符串 list3.add(newst); System.out.println("成功添加:"+newst); //可变更类型的 sb 字符串 清空,用于下一次操作 sb= new StringBuffer(); m++; } System.out.println("============排序前=========="); for (String in : list3){ System.out.println("元素:"+ in); } System.out.println("----------------------排序后---------------------"); Collections.sort(list3); for (String in : list3){ System.out.println("元素:"+ in); } }
自己写的代码。如有不足请指教一二。十分感谢!
//生成字符表 public void generatorAlphabeta(List<Character> list,char st,char ed){ for(char c= st;c<=ed;c++){ list.add(c); } } public void testSort2(){ List<String> stringList = new ArrayList<String>(); List<Character> subList = new ArrayList<Character>(); generatorAlphabeta(subList, 'a', 'z');//将a-z加入字符表 generatorAlphabeta(subList, 'A', 'Z');//将A-Z加入字符表 generatorAlphabeta(subList, '0', '9');//将0-9加入字符表 //随机生成字符串 String str = ""; Random random = new Random(); for (int j = 0; j < 10; j++) { str = ""; while(true){ for (int i = 0; i < random.nextInt(10); i++) { double randomNum = 0.0; int index = 0; index = random.nextInt(62); str = str + subList.get(index); }//生成小于10长度的字符串 if(!str.equals("") && !stringList.contains(str)) break;//不为空且不重复就跳出字符串生成 } stringList.add(str);//10条字符串 } 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); } }
Java入门第三季
409769 学习 · 4543 问题
相似问题