慕前端1329497
2019-03-04 20:28
package com.collections.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
* 练习: 利用Collections.sort()方法对泛型为String的List进行排序 版本2
*
* 1.创建完List<String>之后,往其中添加十条随机字符串
*
* 2.每条字符串的长度为10以内的随机整数
*
* 3.每条字符串的每个字符都为随机生成的字符,字符可以重复
*
* 4.每条随机字符串不可重复
*
*
*/
public class CollectionsTest {
/**
* 创建List
*
* @param args
*/
// List是接口可以声明对象,但要通过实现类来实例化。
public List<String> string;
/**
* 在构造方法中初始化string属性
*
* @param args
*/
public CollectionsTest() {
this.string = new ArrayList<String>();
}
public void testStringSort() {
// 添加十条随机字符串
Random random = new Random();
String s;// 随机字符串
for (int i = 0; i < 10; i++) {// 添加十条随机字符串
do {
int s_length = random.nextInt(10);// 每条字符串的长度为10以内的随机整数
s = randomString(s_length);
} while (string.contains(s) && s != null);// 每条随机字符串不可重复
string.add(s);
System.out.println("成功添加字符串:" + s);
}
// 输出字符串
System.out.println("输出字符串随机数");
System.out.println("----------排序前----------");
for (String string2 : string) {
System.out.println("随机字符串:" + string2);
}
System.out.println("字符串进行排序");
System.out.println("----------排序后----------");
Collections.sort(string);
for (String string2 : string) {
System.out.println("随机字符串:" + string2);
}
}
public String randomString(int s_length) {
// 产生随即字符串
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s_length; i++) {
int number = random.nextInt(3);
long result = 0;
switch (number) {
case 0 :
result = Math.round(Math.random() * 25 + 65);//A-Z A:65
sb.append(String.valueOf((char) result));
break;
case 1 :
result = Math.round(Math.random() * 25 + 97);// a-z a:97
sb.append(String.valueOf((char) result));
break;
case 2 :
sb.append(String.valueOf(new Random().nextInt(10)));//整数0-9
break;
}
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CollectionsTest ct = new CollectionsTest();
ct.testStringSort();
}
}
我比较喜欢的一个答案?
(string.contains(s) && s != null);// 每条随机字符串不可重复 大哥这个是啥?去查查API
Java入门第三季
409792 学习 · 4340 问题
相似问题