为了账号安全,请及时绑定邮箱和手机立即绑定

自己写到的课后练习

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 回答

想法很奇特,受教了!

0 回复 有任何疑惑可以回复我~

这是改完的

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

}

}


0 回复 有任何疑惑可以回复我~
#1

闰冬秋拾

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

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

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

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

进入课程

自己写到的课后练习

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信