我想根据对象属性对 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
上对它们进行排序(升序)。
我搜索并想出了我尝试过但没有成功的可比较和比较器接口(interface)。还有其他方法可以做到这一点吗?或者我的比较器执行错误了。
编辑: 以下是我为比较器编写的代码。请确认是否按升序排序?
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
基于按升序顺序排列的组。
关于java - 如何根据 myobject 的属性对 ArrayList<myobject> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818455/