手记

java第三季中对String泛型的List进行排序(随机生成长度不超过10的字符串)

主要排序方法sort()

/**
     * 添加10条随机字符串
     * 每条字符串的长度为10以内的随机整数
     * 每条字符串的每条字符都是随机生成的字符,字符可以重复
     * 每条随机字符串不可以重复
     */

    public void sort() {
        //这个字符串表示了所有字符,我们要从中截取字符
        String base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        StringBuffer sb;
        Random random = new Random();
        List<String> stringList = new ArrayList<String>();
        //循环10次,遍历出10个字符串
        for (int i = 0; i < 10; i++) {
            //每一次遍历完,sb清空
            sb = new StringBuffer();
            //长度表示1-10之间的整数,即为字符串的长度
            int length = (int) (Math.random() * 9) + 1;
            //使用do-while来判断是否有重复的字符串,如果重复则继续循环
            do {
                for (int j = 0; j < length; j++) {

                    //radom.nextInt(int n)表示返回一个伪随机数,它是取自此随机数生成器序列的、
                    //在 0(包括)和指定值n(不包括)之间均匀分布的 int 值
                    int number = random.nextInt(base.length());
                    sb.append(base.charAt(number));
                }
            } while (stringList.contains(sb));
            //循环一次之后将得到的字符串添加到List中
            stringList.add(sb.toString());
            System.out.println("将要添加的字符串:" + sb.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);
        }
    }

程序运行的结果:
将要添加的字符串:g9RJ9MnYf
将要添加的字符串:ETJ476m3
将要添加的字符串:hJqc8W
将要添加的字符串:zZm9Z5LpW
将要添加的字符串:mFvC5M7
将要添加的字符串:w68aTjXG
将要添加的字符串:IQ98lS
将要添加的字符串:iAtafK
将要添加的字符串:wWn
将要添加的字符串:xylv62Tw
------排序前------
元素:g9RJ9MnYf
元素:ETJ476m3
元素:hJqc8W
元素:zZm9Z5LpW
元素:mFvC5M7
元素:w68aTjXG
元素:IQ98lS
元素:iAtafK
元素:wWn
元素:xylv62Tw
------排序后------
元素:ETJ476m3
元素:IQ98lS
元素:g9RJ9MnYf
元素:hJqc8W
元素:iAtafK
元素:mFvC5M7
元素:w68aTjXG
元素:wWn
元素:xylv62Tw
元素:zZm9Z5LpW

2人推荐
随时随地看视频
慕课网APP