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之springfox(Swagger) (ApiDoc接口文档)
    springboot + swagger
    高等数学(上)第2章——导数与微分
    oracle 常用 sql
    线性代数基础知识(三)—— 矩阵乘法
    Neo4j(一)
    医学知识图谱(二)——应用
    医学知识图谱一
    数学基本概念
  • 原文地址:https://www.cnblogs.com/mrchi/p/9218458.html
Copyright © 2011-2022 走看看