问答详情
源自:6-5 应用 Collections.sort() 实现 List 排序

我的6.5作业!!!

public class CollectionsTestTwo {
/**
* 通过collections.sort()方法对String泛型进行排序
* 1、要创建一个String泛型,并且随机添加十个字符串
* @param args
*/
public void testSort1() {
String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Random random = new Random();
List<String> stringList = new ArrayList<String>();
for(int i =0;i<10;i++) {
//使用StringBuffer创建一个新的字符串对象
StringBuffer sb = new StringBuffer();
int stringLength = random.nextInt(10);
if(stringLength == 0) {
continue;
}else {
for(int j =0;j<stringLength;j++) {
int num = random.nextInt(str.length());//随机产生一个str的索引位置
sb.append(str.charAt(num));//将str在num位置上的值添加到sb字符串对象中
}
}
stringList.add(sb.toString());
System.out.println("将要添加字符串:" + sb.toString());
}
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);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CollectionsTestTwo ctt = new CollectionsTestTwo();
ctt.testSort1();
}
}

https://img.mukewang.com/5c7e283c0001455d05340759.jpg

提问者:只想敲个代码 2019-03-05 15:41

个回答

  • Zssaer1
    2019-03-06 01:47:53

    看了看下,虽然可以输出十个随机字符串并排序,但是

    没有完成第四个规定,那就是并没有规定是十个不一样的随机字符串。

    可以在添加字符串前判断是否存在,如不存在就跳出重新循环。


    具体可以参考下:

    loop:

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

    //使用StringBuffer创建一个新的字符串对象

    StringBuffer sb = new StringBuffer();

    int stringLength = random.nextInt(10);

    if(stringLength == 0) {

    continue;

    }else {

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

    int num = random.nextInt(str.length());//随机产生一个str的索引位置

    sb.append(str.charAt(num));//将str在num位置上的值添加到sb字符串对象中

    }

    }

    //判断将要添加的字符串是否已经存在

    if (stringList.contains(sb.toString())) {

    continue loop;

    }

    stringList.add(sb.toString());

    i++;

    System.out.println("将要添加字符串:" + sb.toString());

    }