我想根据对象属性对ArrayList中的某些对象进行排序。
该对象具有:

public class Minterm

{
    String minTerm;
    char flagTick;
    String minTermDerive;
    int groupNo;
    String adjGroup;
    static int MaxLiterals;


那么我在主要方法中有这个:

ArrayList<Minterm> column =new  ArrayList<Minterm>();


然后在列表中添加Minterm类型的一些对象。但最后,我想将它们组织起来并按成员变量groupNo(升序)进行排序。

我搜索并提出了我尝试过但没有成功的可比接口和比较器接口。还有其他方法吗?还是我在做比较器实现错误。

编辑:
以下是我为Comparator编写的代码。请确认是否会升序排列?

package backEnd;

import java.util.Comparator;

public class Comp implements Comparator<Minterm>
{
        @Override
        public int compare(Minterm a, Minterm b)
        {
            return a.getgroupOne().compareTo(b.getgroupOne());
        }
}


我将其运行为:

Collections.sort(column , new Comp());


似乎工作正常。但我对此没有很好的了解。
请确认是否会升序排列?

最佳答案

您应该让Minterm实现Comparable<MinTerm>或为Comparator编写自定义MinTerm,然后使用Collections.sort

使用比较器看起来像这样:

Collections.sort(column, new Comparator<Minterm>() {
    @Override
    public int compare(Minterm o1, Minterm o2) {
        return Integer.valueOf(o1.groupNo).compareTo(o2.groupNo);
    }
});


关于您的编辑:

是。会根据组的升序对Minterm进行排序。

10-07 12:23