应用 Collections.sort() 实现 List 排序

时间:2021-09-22 19:43:40
package com.imooc.collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

/**
* 将要完成:
* 1.通过Collections.sort()方法, 对Integer泛型的List进行排序
* 2.对String泛型的List进行排序
* 3.对其他类型发行的List进行排序,以Student为例
*
* @author Monica
*
*/

public class CollectionsTest {

/**
* 对Integer泛型的List进行排序 创建一个Integer泛型的List,
* 插入十个100以内的不重复随机整数,
* 调用Collections.sort()方法对其进行排序
*
*/

public void testSort1() {
List<Integer> integerList = new ArrayList<Integer>();
Random random = new Random();
Integer k;
for (int i = 0; i < 10; i++) {
do {
k = random.nextInt(100);
} while (integerList.contains(k));
integerList.add(k);
System.out.println("成功添加整数:" + k);
}
System.out.println("—————排序前—————");
for (Integer integer : integerList) {
System.out.println("元素:" + integer);
}
Collections.sort(integerList);
System.out.println("-----排序后-------");
for (Integer integer : integerList) {
System.out.println("元素:" + integer);
}
}

/**
* 2.对String泛型的List进行排序
* 创建String泛型的List,
* 添加三个乱序的String元素,
* 调用Sort方法,再次输出排序后的顺序
*/

public void testSort2() {
List<String> stringList = new ArrayList<String>();
stringList.add("microsoft");
stringList.add("google");
stringList.add("lenovo");
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 String getRandomString(int length){
String base = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for(int i=0;i<length;i++){
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return sb.toString();
}

/**
* 创建完List<String>之后,在其中添加十条随机字符串,
* 每条字符串的长度为10以内的随机整数,
* 每条字符串的每个字符都为随机生成的字符,
* 字符可以重复 每条随机字符串不可重复。
*/

public void testSort3() {
List<String> stringList = new ArrayList<String>();
Random random = new Random();
int number = random.nextInt(10);
for (int i = 0; i < 10; i++) {// 添加的字符串个数
String toString;
do {
toString=getRandomString(number);
} while (stringList.contains(toString));
stringList.add(toString);
System.out.println("成功添加了:" + 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
CollectionsTest ct = new CollectionsTest();
System.out.println("十个100以内的不重复随机整数排序:");
ct.testSort1();
System.out.println("三个乱序的String排序:");
ct.testSort2();
System.out.println("添加十条随机字符串:");
ct.testSort3();
}

}

运行结果:

十个100以内的不重复随机整数排序:
成功添加整数:77
成功添加整数:48
成功添加整数:11
成功添加整数:65
成功添加整数:53
成功添加整数:47
成功添加整数:54
成功添加整数:29
成功添加整数:99
成功添加整数:42
—————排序前—————
元素:77
元素:48
元素:11
元素:65
元素:53
元素:47
元素:54
元素:29
元素:99
元素:42
-----排序后-------
元素:11
元素:29
元素:42
元素:47
元素:48
元素:53
元素:54
元素:65
元素:77
元素:99
三个乱序的String排序:
-------排序前--------
元素:microsoft
元素:google
元素:lenovo
-------排序后-------
元素:google
元素:lenovo
元素:microsoft
添加十条随机字符串:
成功添加了:AIyM
成功添加了:8IOn
成功添加了:8iBe
成功添加了:eO2i
成功添加了:e707
成功添加了:4Djh
成功添加了:PyTV
成功添加了:xX2u
成功添加了:j9jA
成功添加了:b5c7
-------排序前--------
元素:AIyM
元素:8IOn
元素:8iBe
元素:eO2i
元素:e707
元素:4Djh
元素:PyTV
元素:xX2u
元素:j9jA
元素:b5c7
-------排序后-------
元素:4Djh
元素:8IOn
元素:8iBe
元素:AIyM
元素:PyTV
元素:b5c7
元素:e707
元素:eO2i
元素:j9jA
元素:xX2u