自己写到的课后练习

来源:6-5 应用 Collections.sort() 实现 List 排序

SilenceDean

2016-07-07 21:10

public void testSort3(){

List<String> stringList=new ArrayList();

Random random=new Random();

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

String b="";//每得到一次字符串并将其存入stringList后,将存放字符串的变量初始化

do{

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

Integer k=random.nextInt(10);

String a=Integer.toString(k);

b+=a;   //通过10次循环,得到字符串的每一位,并将其连接起来得到长度为10的字符串

}

}while(stringList.contains(b));

stringList.add(b);

System.out.println("添加了元素:"+b);

}

System.out.println("--------排序前--------");

for (String string : stringList) {

System.out.println("元素为:"+string);

}

Collections.sort(stringList);

System.out.println("--------排序后--------");

for (String string2 : stringList) {

System.out.println("元素为:"+string2);

}

}


写回答 关注

3回答

  • 哀幻暝
    2016-07-27 19:02:51

    想法很奇特,受教了!

  • SilenceDean
    2016-07-08 12:47:56

    这是改完的

    public void testSort5(){

    List<String> stringList=new ArrayList<String>();

    String s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    Random random=new Random();

    int k;

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

    StringBuilder str=new StringBuilder();


    do{

    k=random.nextInt(11);  //确定某个元素的字符串长度

    }while(k==0);

    for(int j=0;j<k;j++){   //为某个元素的字符串进行赋值

    do{

    char ch=s.charAt(random.nextInt(s.length()));

    str.append(ch);

    }while(stringList.contains(str));

    }

    String ss=str.toString();

    stringList.add(ss);

    System.out.println("添加了元素:"+ss);

    }


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

    }

    }


    闰冬秋拾

    思路很像~一开始运行的时候是不是有的元素只有一个空格,纳闷很久,忘记k可能是0了,然后就写了random(9)+1,这个do-while好像更合理一些!

    2016-08-10 02:00:32

    共 1 条回复 >

  • SilenceDean
    2016-07-07 21:49:32

    ...发现理解错了,是生成随机字符串

    把题目看成了“每条字符串为长度10以内的随机整数”

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题