Saa*_*ood 0 java sorting collections arraylist
我想根据对象属性对ArrayList中的一些对象进行排序.对象有:
public class Minterm
{
String minTerm;
char flagTick;
String minTermDerive;
int groupNo;
String adjGroup;
static int MaxLiterals;
Run Code Online (Sandbox Code Playgroud)
然后我在主要方法中有这个:
ArrayList<Minterm> column =new ArrayList<Minterm>();
Run Code Online (Sandbox Code Playgroud)
然后我Minterm在列表中添加一些类型的对象.但最后我想组织它们并在成员变量groupNo(升序)上对它们进行排序.
我搜索并提出了我尝试过但没有成功的可比较和比较器接口.有没有其他方法可以做到这一点?或者我正在做比较器实现错误.
编辑: 以下是我为比较器编写的代码.请确认它是否会按升序排序?
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());
}
}
Run Code Online (Sandbox Code Playgroud)
我运行它:
Collections.sort(column , new Comp());
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.但我对它没有完全理解.请确认它是否会按升序排序?
你应该让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);
}
});
Run Code Online (Sandbox Code Playgroud)
关于你的编辑:
是.这种种Minterm基于S组升序的顺序.
| 归档时间: |
|
| 查看次数: |
2650 次 |
| 最近记录: |