我想根据对象属性对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
进行排序。