比较Java中一个类的两个实例

比较Java中一个类的两个实例,java,Java,我有一个有两个整数成员的类。这些成员是块编号和偏移编号。我需要比较这门课的两个例子,它们的符号是大的还是小的。比如, instance1 < instance2 instance1

我有一个有两个整数成员的类。这些成员是块编号和偏移编号。我需要比较这门课的两个例子,它们的符号是大的还是小的。比如,

instance1 < instance2
instance1
语句需要返回true,如果

instance1.blockNumber < instance2.blockNumber;
instance1.blockNumber

instance1.blockNumber=instance2.blockNumber;
instance1.offset

据我所知,Java不支持运算符重载。如何进行这种比较?

如果类类型是您自己的代码,那么您可以让它实现
compariable
,并定义
comparieto
方法,在该方法中您可以编写逻辑。然后,您可以使用
compareTo
比较它们,让类实现
Comparable
接口,该接口提供了
compareTo
方法。然后,您可以在if语句中使用数字的值(
-1
表示较少,
1
表示较多,
0
表示相等)

如果要将这些对象放入列表(例如,用于排序),还应
@覆盖
.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;
  }   
}
import java.util.compariable;
公共类BlockOffset实现可比较
{
私有整数块号;
私有整数偏移;
@凌驾
公共整数比较(块偏移量实例2){
if(this.blockNumberinstance2.blockNumber)返回1;
if(this.offsetinstance2.offset)返回1;
返回0;
}   
}

您可以实现并使用
comparable
comparator
您可以实现
comparable
界面。你仍然不能写
instance1
,但需要写
instance1.compareTo(instance2)<0
。我能用>,
,你必须使用
compareTo()
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;
  }   
}