java - 如何根据整数数组对对象集进行排序

标签 java sorting

我有一个类叫做变量

Class Variable{ private String name; private int[] domain; //...etc} 

表示特定结构中的变量(约束满足问题)。

我在 ArrayList 中实例化了一组变量并填充了一个整数数组。

 ArrayList<Variable> vars=new ArrayList<Variable>();
 Variable a=new Variable("A",new int[]{1,2});
 vars.add(a);
 // Define all variables;
 int[] cons=new int[vars.size()];
  for(int i=0;i<cons.length;i++)
    cons[i]=number_of_constraints(vars.get(i));
    // cons contains number of involved constraints for each variable

现在我需要根据约束的数量对它们进行降序排序。

换句话说:给定对象列表 [(A,{1,2}) , (B,{3,4}) , (C,{5,6}) ] 和整数数组 cons={1,2,0} 如何根据整数数组对对象列表进行降序排序?

最佳答案

使用像TreeSet这样的排序集合

class Variable {

    private String name;
    private int[] domain;
};
final Set<Variable> variables = new TreeSet<Variable>( new Comparator<Variable>() {

    public int compare(Variable o1, Variable o2) {
        //Do comparison here
        //return -1 if o1 is less than o2
        //1 if o1 is greater than o2
        //0 if they are the same
    }
});

现在您有一个已排序的 SetVariable。这保证始终排序。

关于java - 如何根据整数数组对对象集进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15039941/

相关文章:

java - 当另一个属性具有相同的值时,如何根据对象的一个​​属性对对象数组进行排序?

转换函数类型,同时将其作为参数发送到 'qsort'

algorithm - 计算排名数据的估计数学期望?

arrays - 包含给定查询点的区间数

java - 无法使用 Spring 和 Thymeleaf 传输 View 上的对象

java - 如何为 Gson 编写自定义 JSON 反序列化器?

Java3D : Tutorials, 项目,通用 3D 编程

java - 用空格对字符串值进行排序

java - 用于简单图像编辑的 SWING 组件

Java:根据 MyObject 变量对 ArrayList<MyObject> 进行排序