Java で 2つの整数を比較する

Mohammad Irfan 2023年10月12日
  1. Java で == 演算子を使用して 2つの整数値を比較する
  2. Java で equals() メソッドを使用して 2つの整数参照を比較する
  3. Java で equals() メソッドを使用して 2つの整数を比較する
  4. Java で == 演算子を使用して 2つの整数参照を比較しない
Java で 2つの整数を比較する

このチュートリアルでは、Java で 2つの整数を比較する方法を紹介します。

Java で整数値を比較するには、equals() メソッドまたは ==(equals 演算子)のいずれかを使用できます。両方とも 2つの値を比較するために使用されますが、== 演算子は 2つの整数オブジェクトの参照の同等性をチェックしますが、equal() メソッドは整数値(プリミティブと非プリミティブ)のみをチェックします。

したがって、整数値を比較する際に、比較方法を選択するのは開発者の責任です。いくつかの例を見てみましょう。

Java で == 演算子を使用して 2つの整数値を比較する

この例では、2つのプリミティブ整数を取得し、== 演算子を使用して両方の値を比較します。この例では、Java15 を使用してテストします。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 18;
    int b = 18;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

出力:

Both are equal

Java で equals() メソッドを使用して 2つの整数参照を比較する

equals() メソッドを使用して、Java で 2つの整数を比較できます。両方のオブジェクトが等しい場合は true を返します。それ以外の場合は、false を返します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = new Integer(18);
    Integer b = new Integer(18);
    if (a.equals(b)) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

出力:

Both are equal

Java で equals() メソッドを使用して 2つの整数を比較する

ここでは、equals() メソッドを使用して 2つの整数参照を比較しています。

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 10;
    Integer b = 10;
    if (a.equals(b)) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

出力:

Both are equal

Java で == 演算子を使用して 2つの整数参照を比較しない

参照の同等性をチェックするため、2つの整数値を比較するために == 演算子を使用しないでください。

Java は-128 から 127 の範囲の Integer 値をキャッシュします。したがって、2つの整数オブジェクトがこの範囲で同じ値を持つ場合、== コンパレータは同じオブジェクトを参照するため true を返します。ただし、この範囲外の値に対しては false を返します。

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 18;
    Integer b = 18;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

出力:

Both are equal
public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 150;
    Integer b = 150;
    if (a == b) {
      System.out.println("Both are equal");
    } else
      System.out.println("Not equal");
  }
}

出力:

Not equal

上記のように、2つの Integer 値を比較するために == を使用するべきではありません。

関連記事 - Java Integer