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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值