手记

Java入门第三季 6-5 应用Collections.sort() 实现 List 排序 练习

public void textSort3() {
        List<String> l = new ArrayList<String>();
        String s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        //Random ran = new Random();
        String str = null;
        char[] c = null;
        for (int x = 0; x < 10; x++) {
            do {
                //这里产生的随机数必须是1-10才行
                int a = (int) (Math.random() * 9 + 1);
                c = new char[a];
                for (int i = 0; i < a; i++) {
                    //不用Random是因为随机数会产生0和上标越界的问题
                    c[i] = s.charAt((int) (Math.random() * 60) + 1);
                }
                str = String.valueOf(c);
            } while (l.contains(str));
            l.add(str);
            System.out.println("成功添加字符串:" + str);
        }
        System.out.println("==========排序前==========");
        for (String string : l) {
            System.out.println("元素:" + string);
        }
        Collections.sort(l);
        System.out.println("==========排序后==========");
        for (String string : l) {
            System.out.println("元素:" + string);
        }
    }
1人推荐
随时随地看视频
慕课网APP

热门评论

你的随机数 Math.Random这个取得的是浮点型,强转为int  会掉浮点数的

//不用Random是因为随机数会产生0和上标越界的问题

 c[i] = s.charAt((int) (Math.random() * 60) + 1);

这里为什么不要0!???

而且((Math.random() * 60) + 1)不会随机生成61呀。

应该改成c[i] = s.charAt((int)(Math.random()*62));才合理吧。

查看全部评论