向String泛型集合中插入5个字符串,并排序。看代码
public class TestList {
public void TestStringList() {
List<String> stringList = new ArrayList<String>();
stringList.add("baidu");
stringList.add("yahoo");
stringList.add("360");
stringList.add("bing");
stringList.add("google");
System.out.println("排序前:");
for (String string : stringList) {
System.out.print(string + " ");
}
Collections.sort(stringList);
System.out.println("\n升序后:");
for (String string : stringList) {
System.out.print(string + " ");
}
Collections.reverse(stringList);
System.out.println("\n降序后:");
for (String string : stringList) {
System.out.print(string + " ");
}
}
}
在main方法中调用,并打印出结果
public static void main(String[] args) {
TestList t = new TestList();
t.TestStringList();
}
看结果
排序前:
baidu yahoo 360 bing google
升序后:
360 baidu bing google yahoo
降序后:
yahoo google bing baidu 360
注意了:排序是按照:数字——大写——小写的顺序执行的。
改进代码,插入的字符串是程序运行时添加并且不重复的。
/**
* 在Character 泛型中添加元素
* @param charList
* @param beg 开始
* @param end 结束
*/
public void addAlphabet(List<Character> charList, char beg, char end) {
for (char c = beg; c <= end; c++) {
charList.add(c);
}
}
然后再添加数据
public void insertStringList() {
List<String> strList = new ArrayList<String>();
List<Character> charList = new ArrayList<Character>();
// 将数字和字母烦人你别加入
addAlphabet(charList, '0', '9');
addAlphabet(charList, 'a', 'z');
addAlphabet(charList, 'A', 'Z');
// 随机数
Random random = new Random();
for (int i = 0; i < 5; i++) {
// 随机生成的字符串
String str = "";
for (int j = 0; j < 10; j++) {
do {
int index = random.nextInt(62);
str = str + charList.get(index);
} while (strList.contains(str));
}
strList.add(str);
}
System.out.println("排序前:");
for (String string : strList) {
System.out.print(string + " ");
}
Collections.sort(strList);
System.out.println("\n升序后:");
for (String string : strList) {
System.out.print(string + " ");
}
Collections.reverse(strList);
System.out.println("\n降序后:");
for (String string : strList) {
System.out.print(string + " ");
}
}
打印结果如下:
排序前:
BhD4dljaF9 zyYbuIAAmH Ruvcdp13Aq dZZmF9kKmh dumBvqhZji
升序后:
BhD4dljaF9 Ruvcdp13Aq dZZmF9kKmh dumBvqhZji zyYbuIAAmH
降序后:
zyYbuIAAmH dumBvqhZji dZZmF9kKmh Ruvcdp13Aq BhD4dljaF9
再次修改代码将生成的字符串的长度提取为方法
/**
* @param newLength 要生成的字符串的长度
* @return 生成的字符串
*/
public String getRandomString(int newLength){
StringBuffer buffer=new StringBuffer("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
StringBuffer newBuffer=new StringBuffer();
Random random=new Random();
int range=buffer.length();
for (int i = 0; i <newLength; i++) {
newBuffer.append(buffer.charAt(random.nextInt(range)));
}
return newBuffer.toString();
}
调用上面的方法
public void getStringList(){
List<String> strList=new ArrayList<String>();
String str="";
for (int i = 0; i < 5; i++) {
do {
str = getRandomString(10);
} while (strList.contains(str));
strList.add(str);
}
System.out.println("排序前:");
for (String string : strList) {
System.out.print(string + " ");
}
Collections.sort(strList);
System.out.println("\n升序后:");
for (String string : strList) {
System.out.print(string + " ");
}
Collections.reverse(strList);
System.out.println("\n降序后:");
for (String string : strList) {
System.out.print(string + " ");
}
}
当然这里生成int类型的整数的方法也大致如此。如下,生成1000以内的随机数8个
public void getInteger(){
List<Integer> list=new ArrayList<Integer>();
//随机数
Random random=new Random();
int i;
for (int j = 0; j <8; j++) {
do {
i = random.nextInt(1000);
} while (list.contains(i));
list.add(i);
}
System.out.println("排序前:");
for (Integer integer : list) {
System.out.print(integer+" ");
}
Collections.sort(list);
System.out.println("\n升序后:");
for (Integer integer : list) {
System.out.print(integer+" ");
}
Collections.reverse(list);
System.out.println("\n降序后:");
for (Integer integer : list) {
System.out.print(integer+" ");
}
}
好了,就写到这里。