如何编写Java布尔比较方法

时间:2018-05-20 03:15:40

标签: java boolean comparator

我需要一些Java帮助。如果int a = int,则返回true,如何编写布尔比较方法。它会是这样的:

public int checkIfEqual(int a, int b) {
  if (int a = int b) {
    return 1;
  } else {
    return -1;
  } 
}

4 个答案:

答案 0 :(得分:3)

保持简单:

public boolean compare(int a, int b) {
    return a == b;
}

我注意到你试图返回一个int:Java ain&c; C,所以像0这样的一些C成语是假的,非零是true don& #39;用Java保存。

此外,这种方法比无用更糟糕,因为:

  • if (a == b)的写入时间比if (compare(a, b))
  • if (a == b)if (compare(a, b))
  • 更清晰
  • compare()实际上是一个保留字,因为它是Comparator接口的(唯一)方法,一个非常常用的类
  • compare是一个糟糕的名字,因为之前的原因,但也因为equals正是它真正做的并且是java惯例

答案 1 :(得分:1)

正如@Bohemian所说,如果你只想测试两个int值是否相等:

public boolean equal(int a, int b) {
    return a == b;
}

不要调用此方法compare,因为名称compare具有强大的内涵,用于测试Java中的排序。它应该是equal还是equals是值得商榷的。

(波希米亚关于上述方法无效的观点是适用的。)

这是实现int compare(int, int)的正确比较方法应该看起来像 1

public int compare(int a, int b) {
   if (a == b) {
      return 0;
   } else if (a < b) {
      return -1;
   } else {
      return 1;
   } 
}

这与Comparator::compare(T, T)的语义兼容。

  

我也不确定如何添加以下约束:

     

0≤a,b≤10000000

添加if这样的语句:

 if (a < 0 || b > 10000000) {
     throw SomeException("some message");
 }

其中SomeException是您要抛出的异常,表示存在约束错误。

  

另外,我是否还需要创建一个实现比较器接口的检查器类?

检查器类应该实现Comparator没有具体原因。只有在您的检查器需要使用作为比较器时才能执行此操作。

  

对于具有以下约束的字符串,它是否也会起作用:

     

1≤| a |,| b | ≤2000

方法可用于约束字符串的长度。

1 - 向您展示代码比解释您的版本有什么问题更快。但是比较它们......你应该能够解决这个问题。

答案 2 :(得分:0)

这将是一个简单比较的工人阶级:

public int compare(int a, int b) {
    if (a == b) {
      return 0; 
    } else {
      return -1;
    } 
}

对于每个其他比较,您需要添加它们

条件:

if (a >= 0 && b >= 0 && a <= 10000000 && b <= 10000000)
/* rest of the code */

absA = Math.abs(a);
absB = Math.abs(b);
if (absA >= 1 && absB >= 1 && absA <= 2000 && absB <= 2000)
/* rest of code */

答案 3 :(得分:-1)

  

我需要一些Java帮助以及如何编写一个布尔比较方法,如果int a = int b则返回true,否则返回false

a == b

a.Equals(b)(整数类)

b.Equals(a)(整数类)

a-b == 0

b-a == 0

我认为对于平等检查来说已经足够了。

现在为其他人检查...添加&amp;&amp;&amp;&amp; (a>x && a<y && b>x && b<y)

编辑:不要将int用作布尔值。这不是C(其中0为假,而且= = 0为真),bool是bool,int是int。