继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

应用 Collections.sort() 实现 List 排序 练习

sunnylinner
关注TA
已关注
手记 2
粉丝 57
获赞 32
    /**
     * 1、创建完List<String>之后,往其中添加十条随机字符串
     * 2、每条字符串的长度为10以内的随机整数
     * 3、每条字符串的每个字符都为随机生成的字符,字符可以重复
     * 4、每条随机字符串不可重复
     */
    public void testSort3(){
        List<String> stringList = new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            StringBuilder tempString = new StringBuilder();
            Random random = new Random();
            do {
                int k = random.nextInt(10);
                for (int j = 0; j <= k; j++){
                    int t = random.nextInt(3);
                    if (t == 0) {
                        tempString.append((char)('0' + random.nextInt(10)));
                    } else if (t == 1) {
                        tempString.append((char)('A' + random.nextInt(26)));
                    } else {
                        tempString.append((char)('a' + random.nextInt(26)));
                    }
                }
            } while(stringList.contains(tempString.toString()));
            stringList.add(tempString.toString());
        }
        System.out.println("--------排序前--------");
        for (String st : stringList) {
            System.out.println("将要添加字符串:'" + st + "'");
        }
        Collections.sort(stringList);
        System.out.println("--------排序后--------");
        for (String st : stringList) {
            System.out.println("元素:" + st);
        }
    }

--------排序前--------
将要添加字符串:'7x'
将要添加字符串:'Ebu365T'
将要添加字符串:'4tYlE9CN'
将要添加字符串:'lzlnw14sd'
将要添加字符串:'YA0HzPX79I'
将要添加字符串:'WMM0'
将要添加字符串:'JV7tR'
将要添加字符串:'I2Kf'
将要添加字符串:'D52MNl5u3'
将要添加字符串:'r7U76j4fB'
--------排序后--------
元素:4tYlE9CN
元素:7x
元素:D52MNl5u3
元素:Ebu365T
元素:I2Kf
元素:JV7tR
元素:WMM0
元素:YA0HzPX79I
元素:lzlnw14sd
元素:r7U76j4fB

打开App,阅读手记
7人推荐
发表评论
随时随地看视频慕课网APP

热门评论

你好,感觉如果把字符分成三类,每个字符的随机几率是不同的。感觉应该这么写。

for (int i = 0; i < 10; i++) {

StringBuilder sb = new StringBuilder();

Random random = new Random();

do{

String s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

int length = random.nextInt(10);

for (int j = 0; j <= length; j++){ 

sb.append(s.charAt(random.nextInt(62)));

}

} while (stringList1.contains(sb.toString()));

stringList1.add(sb.toString());

}



查看全部评论