问答详情
源自:6-5 应用 Collections.sort() 实现 List 排序

随机生成不重复的字符串

//生成字符表

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);

        }

    }



提问者:慕容6889247 2015-12-29 19:11

个回答

  • 7r0j4n
    2016-02-18 08:03:51

    第一个for循环重复1000次 ,随机生成的字符串,长度大多数在5以内,不是很懂,望楼主指教

  • 7r0j4n
    2016-02-18 07:46:31

    while语句前面的 str = "";、double randomNum = 0.0; 好像没什么用

  • 慕莱坞9220042
    2015-12-29 19:50:17

    楼主是在秀一下么,给楼主点个赞,求楼主打赏,望楼主采纳!@_@