zoukankan      html  css  js  c++  java
  • java中Collection,Arrays内元素的排序问题(comparable,comparator接口的应用)

    在我们通常对于collection的使用过程中,很多时候都需要对内部的元素进行排序。对于这个排序,通常可以有两种实现方式:

    1.创建一个comparator类实现comparator接口,然后应用collection内部提供的sort方法进行排序。例如对于图中的边,按照其权值大小进行排序(后面介绍第二种方法也是就这个例子进行)。

    边Edge的实现如下:

    public class Edge{

        Vertex s,t;

        double weight;

        。。。

    }

    我们实现的comparator类定义如下:

    进行排序的方法如下:

    public void sort(List<Edge> edges){

      EdgeComparator comparator = new EdgeComparator();

      Collections.sort(edges,comparator);

    }

    这样我们就可以对于edges中的Edge按照其权值的大小进行排序了。在我们的实际应用中,可以按照自己的需要自行调整。

    2.让你的ADT实现Comparable接口,然后override compareTo()方法。这种方法与Comparator的区别主要是不需要构建新的Comparator类,比较代码放在ADT内部。

    由此我们重写上面定义的Edge类如下:

    再应用Collections.sort(edges)对edges进行排序。

  • 相关阅读:
    springboot 配置
    spring boot配置分页插件
    mongodb 操作
    java基础知识
    java设计模式
    /cat/cpuinfo信息查看
    app接口开发
    基于OpenAM系列的SSO----基础
    关于Linux下的连接文件学习总结
    YII :将oracle中timestamp 字段正常显示在页面中
  • 原文地址:https://www.cnblogs.com/mrchi/p/9218458.html
Copyright © 2011-2022 走看看