//仅供参考,复制粘贴对你没一点好处。

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

mr1024

2015-11-09 14:37


/** 3.对String泛型的List进行排序

* 创建一个String泛型的List,添加十条随机的String元素

* 每条字符串的长度为10以内的随机整数

* 每条字符串的每个字符都为随机生成的字符,字符可以重复

* 每条随机字符串不可重复

*/

public void testStringSort() {

int number = 0;

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

// 定义一个字符串保存,1-9,A-Z,a-z.

String string1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstyvwxyz";

Random rd = new Random();

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

//用来保存每条字符串 循环十次

String st2 = new String();

for (int x = 0; x < rd.nextInt(10) + 1; x++) {

int k = 0;

do {

//随机获取string1字符串长度之内的int型数字

k = rd.nextInt(string1.length());

//通过字符串的charAt方法取得随机数k所对应的下标的字符,并且加上"",转换为字符串st2,

st2 += string1.charAt(k)+"";

//添加contains()方法进行判断listsort中是否包含该字符串

} while (listsort.contains(st2));

}

System.out.println("将要添加的元素:" + st2);

listsort.add(st2);

}

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

for (String string : listsort) {

System.out.println("第" + (number + 1) + "条字符串:" + string);

number++;

}

Collections.sort(listsort);

number = 0;

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

for (String string : listsort) {

System.out.println("第" + (number + 1) + "条字符串:" + string);

number++;

}

}

//仅供参考,复制粘贴对你没一点好处。


写回答 关注

2回答

  • kmustwh
    2015-11-30 14:12:52

    运行是没有问题的,但是有时会出现生成了空字符串的现象,请问是为什么?

    如下:

    成功添加字符串:dHh

    成功添加字符串:54

    成功添加字符串:llPn79BN

    成功添加字符串:

    成功添加字符串:xUMCX

    成功添加字符串:h

    成功添加字符串:E

    成功添加字符串:D3jPaDdH

    成功添加字符串:gwSrek

    成功添加字符串:

    ----------排序前-----------

    字符串为:dHh

    字符串为:54

    字符串为:llPn79BN

    字符串为:

    字符串为:xUMCX

    字符串为:h

    字符串为:E

    字符串为:D3jPaDdH

    字符串为:gwSrek

    字符串为:

    ----------排序后-----------

    字符串为:

    字符串为:

    字符串为:54

    字符串为:D3jPaDdH

    字符串为:E

    字符串为:dHh

    字符串为:gwSrek

    字符串为:h

    字符串为:llPn79BN

    字符串为:xUMCX



    mr1024

    x < rd.nextInt(10) + 1,你加一了吗

    2015-12-01 13:14:47

    共 1 条回复 >

  • 池炜钒
    2015-11-17 12:58:00

    有一个潜在问题就是,用来保存每条字符串的对象都是String    每次在string1中取得一个字符之后再加到st2上去,实际上是在内存中又生成了一个String 对面空间  


    这样代码的问题就在于 ,如果要生成多条字符串的时候  要占用太多系统内存  造成资源浪费

    mr1024

    是哦,可以考虑用StringBuilder

    2015-11-17 19:39:54

    共 1 条回复 >

Java入门第三季

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

409769 学习 · 4543 问题

查看课程

相似问题