如何获得两个整数之间的区别



我正在尝试制作一个使用区域的程序,每个区域都有一个ID(例如:1; 1),我正在尝试将指定区域的大小与比较两个ID,但此方法返回1个大小。

 //Pos1 = -2;3 Pos2 = 0;1
 int x = Integer.valueOf(pos2.x).compareTo(pos1.x);
 int y = Integer.valueOf(pos2.y).compareTo(pos1.y);
 int size = Math.abs(x * y);

那么我该如何使这项工作?

compareTo不应该返回两个值之间的确切差异。从文档中:

返回一个负整数,零或正整数,因为该对象小于,等于或大于指定的对象。

使用

int x = Math.abs(pos2.x-pos1.x);
int y = Math.abs(pos2.y-pos1.y);
int size = x * y;

结果是1在官方文档中)。

->您不应将此方法用于此目的。而是计算差异:

int x = pos2.x - pos1.x;
int y = pos2.y - pos1.y;
int size = Math.abs(x * y);

integer.compareto()的目的不是找到两个整数对象之间的区别。其目的是指定两个整数对象通过arrays.sort()或collections.sort()。

对两个整数对象之间的排序。

您可能会以以下方式找到区别:

int x = pos2.x - pos1.x;
int y = pos2.y - pos1.y;
int size = Math.abs(x * y);

compareTo如果pos2.x小于pos1.y,则0,如果CC_7相同,则1如果pos2.x大于pos1.y,则CC_8。

而是使用此:

int size = Math.abs((pos2.x-pos1.x)*(pos2.y-pos1.y));

相关内容

  • 没有找到相关文章

最新更新