主页 > 知识库 > 网络编程 > JSP/Java >

JAVA应用 之 排序

来源:中国IT实验室 作者:佚名 发表于:2013-07-17 14:17  点击:
概述: 1.本文阐述对List(Array乱入)的排序问题。 2.Set和Map的排序 可使用TreeSet、TreeMap,见本博客的相关文章(下面提供连接)。 3.想对一个List进行排序有2种方法(数组也适用): 方法一:实现一个比较器Comparator. 方法二:List中的对象实现Comparab
概述:
    1.本文阐述对List(Array乱入)的排序问题。
    2.Set和Map的排序 可使用TreeSet、TreeMap,见本博客的相关文章(下面提供连接)。
    3.想对一个List进行排序有2种方法(数组也适用):
    方法一:实现一个比较器Comparator.
    方法二:List中的对象实现Comparable接口的compareTo方法。
    4.完成上面一点后,集合使用Collections.sort,数组使用Arrays.sort进行排序。
    [java]
    package com.cxy.collection;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    /**
    * @author cxy
    */
    public class ListSortTest
    {
    public static void main(String[] args)
    {
    List <Student> l=new ArrayList();
    Student s1 =new Student("小明",76);
    Student s2 =new Student("小黑",99);
    Student s3 =new Student("小白",60);
    l.add(s1);
    l.add(s2);
    l.add(s3);
    System.out.print("List排序前:");
    System.out.println(l);
    //第一种方式:普通的对象,然后实现一个比较器,使用下面的方法进行排序
    Collections.sort(l,new StudentComparator());
    System.out.print("List排序后:");
    System.out.println(l);
    System.out.println("=======================");
    //乱入的数组
    Student[] sa={s1,s2,s3};
    System.out.print("数组排序前:");
    System.out.println(sa[0].toString()+sa[1]+sa[2]);
    Arrays.sort(sa,new StudentComparator());
    System.out.print("数组排序后:");
    System.out.println(sa[0].toString()+sa[1]+sa[2]);
    System.out.println("============下面的都是ComparableStudent演示===========");
    //对象自身拥有排序能力
    List<ComparableStudent> l1=new ArrayList();
    ComparableStudent s11 =new ComparableStudent("较劲的小明",76);
    ComparableStudent s22 =new ComparableStudent("较劲的小黑",99);
    ComparableStudent s33 =new ComparableStudent("较劲的小白",60);
    //PS:较劲的意思可以理解为 争强好胜 o_o
    l1.add(s11);
    l1.add(s22);
    l1.add(s33);
    System.out.print("List排序前:");
    System.out.println(l1);
    Collections.sort(l1);
    System.out.print("List排序后:");
    System.out.println(l1);
    System.out.println("=======================");
    //数组再次乱入
    ComparableStudent[] cs={s11,s22,s33};
    System.out.print("数组排序前:");
    System.out.println(cs[0].toString()+cs[1]+cs[2]);
    Arrays.sort(cs);
    System.out.print("数组排序后:");
    System.out.println(cs[0].toString()+cs[1]+cs[2]);
    }
    }
    //一个普通的学生类,按照学生的学习成绩进行排序

有帮助
(0)
0%
没帮助
(0)
0%