java - 按属性对 Java ArrayList<MyObject> 进行排序

标签 java sorting arraylist

我有这个对象:

    public class AdresseReponse {

    private String     nom;
    private String     numero;
    private String     rue;
    private String     codePostal;
    private String     ville;
    private String     region;
    private String     pays;
    private Coordonnee coordonnees;
    private double     distanceFromThePrevious;
    private int        number;

// + all setters & getters
}

在另一个类中,我有一个 ArrayList :

ArrayList<AdresseReponse> etapes    = new ArrayList<AdresseReponse>();

这个方法:

public void testSort( AdresseReponse depart, AdresseReponse etape ) throws IOException, _Exception {...}

在这个方法中,我这样做:

etapes.add(etape);

之后,我需要按距离ThePrevious 对 etapes 进行排序。

我该怎么做?

最佳答案

您可以使用 java 比较器来实现这一点。

在此之后

etapes.add(etape);

添加

Sorter sorter = new Sorter();
Collections.sort(etapes, sorter);

这里的排序器是必须实现的自定义比较器。 Sorter 类(其中 sorter 是一个实例)代码如下所示

class Sorter implements Comparator<AddressResponse>{
@Override
public int compare(AddressResponse a, AddressResponse b){
    if(a.getdistanceFromThePrevious() >= b.getdistanceFromThePrevious())
        return 1;
    else if(a.getdistanceFromThePrevious() < b.getdistanceFromThePrevious())
        return -1;
}

希望这有帮助。

关于java - 按属性对 Java ArrayList<MyObject> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146301/

相关文章:

java - 如果程序仅通过 doClick() 进行交互,则 JFrame 永远不会呈现;

java - 如何在 Java 中将 boolean 数组转换为二进制数组,反之亦然?

javascript - 将指定排序条件的对象数组排序为字符串

c++ - 当我在快速排序算法的递归调用中包含主元时,为什么会出现堆栈溢出?

javascript - 阵列处理逻辑校正

java - 根据选定的字符数拆分 ArrayList 中的字符串

java - 如何连接具有相同键属性的对象列表

java - 如何在 JTextArea 中添加可点击的 URL?

java - 按负数移动

android - 如何在android中对 ListView 的项目进行排序或排列?