比较Java中两个类的实例

时间:2013-04-10 11:44:48

标签: java

我有一个包含两个整数成员的类。这些成员是块和偏移数字。我需要将这个类的两个实例与大或小的符号进行比较。例如;

instance1 < instance2
如果

语句需要返回true

instance1.blockNumber < instance2.blockNumber;

instance1.blockNumber = instance2.blockNumber;
instance1.offset < instance2.offset;

据我所知,Java并不支持运算符重载。我怎么能这样比较呢?

3 个答案:

答案 0 :(得分:6)

让类实现Comparable接口,该接口提供compareTo方法。然后,您可以在if语句中使用数字的值(-1为更少,1为更多,0为等于)。

如果您想将这些对象放在列表中(例如,用于排序),您还应该@Override使用.equals方法。

import java.util.Comparable;

public class BlockOffset implements Comparable<BlockOffset>
{
  private int blockNumber;
  private int offset;

  @Override
  public int compareTo(BlockOffset instance2) {
    if (this.blockNumber < instance2.blockNumber) return -1;
    if (this.blockNumber > instance2.blockNumber) return 1;
    if (this.offset < instance2.offset) return -1;
    if (this.offset > instance2.offset) return 1;

    return 0;
  }   
}

答案 1 :(得分:5)

如果类类型是您自己的代码,那么它可以实现Comparable并定义compareTo方法,您可以在其中编写逻辑。然后,您可以使用compareTo比较它们。

答案 2 :(得分:0)

您可以实施并使用comparablecomparator