[英]Comparing two instances of a class in Java
我有一个有两个整数成员的类。 这些成员是块和偏移数字。 我需要将这个类的两个实例与大或小的符号进行比较。 例如;
instance1 < instance2
如果声明需要返回true
instance1.blockNumber < instance2.blockNumber;
要么
instance1.blockNumber = instance2.blockNumber;
instance1.offset < instance2.offset;
据我所知,Java不支持运算符重载。 我该怎么做这样的比较?
让类实现Comparable
接口,它提供compareTo
方法。 然后,您可以在if语句中使用数字的值( -1
表示less, 1
表示更多, 0
表示equals)。
如果你想要把这些对象在列表中(比如,用于排序),你也应该@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;
}
}
如果类类型是您自己的代码,那么它可以实现Comparable
并定义compareTo
方法,您可以在其中编写逻辑。 然后,您可以使用compareTo
比较它们。
你可以实现和使用comparable
或comparator
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.