如何使用可比较的JAVA按属性比较两个对象

时间:2015-12-13 16:14:53

标签: java comparable

我希望通过“int value”比较两个Die对象,并返回具有更高值的对象。我做错了什么......谢谢

public class Die implements DieIntf , Comparable {

    private int value;

    public Die(){}

class ComparatorId implements Comparator<Die> {

        @Override
        public int compare(Die t, Die t1) {
               Integer d1 = t.getValue();
               Integer d2 = t.getValue();
               if(d1>d2) return 1;
               else if(d1<d2) return -1;
               else return 0;
        }
    } 
}

1 个答案:

答案 0 :(得分:1)

  

在您拥有Comparable / Comparator界面之前,请不要使用它   将对象排序为升序/降序的要求。

     

在您的情况下,您希望Bigger Object(基于它的值)返回   比较它。

同样做一些事情,

public class Die{

    int value;


    public Die compareMyDieObjce(Die d){

        if(this.value > d.value){
            return this;
        }

        return d;

    }

    @Override
    public String toString() {
        return " Object-Value : " + this.value;
    }

    public static void main(String[] args) {

        Die d1 = new Die(); d1.value = 5;
        Die d2 = new Die(); d2.value = 55;

        System.out.println(d1.compareMyDieObjce(d2)); // Object-Value : 55

    }

}