package com.six.imooc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.List;
import sun.tools.jar.resources.jar;
/**
- 将要完成:
- 1.通过Collections.sort()方法,对Integer泛型的List进行排序;
- 2.对String泛型的List进行排序;
- 3.对其他类型泛型的List进行排序,以Student为例。
*/
public class CollectionsTest {
/**
* 1.通过Collections.sort()方法,对Integer泛型的List进行排序
* 创建Integer泛型的List存放随机产生的十个100以内的正整数
* 使用collections.sort方法对List中的十个正整数进行排序,最后打印输出
*/
public void testSort1() {
List<Integer> integerList = new ArrayList<Integer>();
//通过random方法,随机产生十个100以内的正整数
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);
}
}
/**
* 利用Collections.sort()方法对泛型为String的List进行排序版本2:
* 1.创建完List<String>之后,往其中添加十条随机字符串
* 2.每条字符串的长度为10以为的随机整数
* 3.每条字符串的每个字符都为随机生成的字符,字符可以重复
* 4.每条随机字符串不可重复
*
*/
public void testSort22() {
List<String> stringList = new ArrayList<String>();
String string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
//添加十条随机字符串
for(int i = 0 ; i < 10 ; i++) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
int digit = random.nextInt(10) + 1;
//十条字符串不能有相同的字符串
do {
for(int j = 0 ; j < digit ; j++) {
int num = random.nextInt(string.length());
sb.append(string.charAt(num));
}
}while(stringList.contains(sb.toString()));
//添加字符串到stringList中
System.out.println("添加了字符串:" + sb);
stringList.add(sb.toString());
}
System.out.println("--------------排序前-----------------");
for (String st : stringList) {
System.out.println("元素:" + st);
}
Collections.sort(stringList);
System.out.println("--------------排序后-----------------");
for (String st : stringList) {
System.out.println("元素:" + st);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CollectionsTest ct = new CollectionsTest();
// ct.testSort1();
// ct.testSort2();
ct.testSort22();
}
}