美文网首页
利用Collections对某个集合进行排序

利用Collections对某个集合进行排序

作者: a538d328e24b | 来源:发表于2019-07-05 15:46 被阅读0次

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式:

    publicstatic>voidsort(List list) {

            list.sort(null);

        }

    publicstaticvoidsort(List list, Comparator c) {

            list.sort(c);

        }

    首先如果想利用Collections进行排序,那么该集合的对象必须是实现Comparator 接口。

    第一种,默认是正序排列,如果要按照自己的规则进行排序;那就得用第二种,实现Comparator 接口,然后重写compareTo方法。

    1)基本类型

    直接用第二种类型

    staticList intList = Arrays.asList(2, 3, 1);

    Collections.sort(intList,newComparator() {

                @Override

                publicint compare(Integer o1, Integer o2) {

                    // 返回值为int类型,大于0表示正序,小于0表示逆序returno2-o1;

                }

            });

    2)自定义类型

    public class Emp implements Comparable{

        /*属性、getter/setter方法、toString方法及构造方法略*/    @Override

        publicint compareTo(Emp emp) {

            /*按员工编号正序排序*/

    //return this.getEmpno()-emp.getEmpno();

    /*按员工编号逆序排序*/

    //return emp.getEmpno()-this.getEmpno();

    /*按员工姓名正序排序*/

    //return this.getEname().compareTo(emp.getEname());

    /*按员工姓名逆序排序*/

    returnemp.getEname().compareTo(this.getEname());

        }

    }   

    使用Collections.sor方法的第一种形式实现:

    Collections.sort(empList);

    第二种:

    Collections.sort(empList,newComparator() {

                @Override

                publicint compare(Emp o1, Emp o2) {

                    /*按员工编号正序排序*/

    returno1.getEmpno()-o2.getEmpno();

                    /*按员工编号逆序排序*/

    //return o2.getEmpno()-o1.getEmpno();

    /*按员工姓名正序排序*/

    //return o1.getEname().compareTo(o2.getEname());

    /*按员工姓名逆序排序*/

    //return o2.getEname().compareTo(o1.getEname());      

          }

            });

    相关文章

      网友评论

          本文标题:利用Collections对某个集合进行排序

          本文链接:https://www.haomeiwen.com/subject/ehdehctx.html