Как сравнить длинное значение, равное длинному значению

long a = 1111;
Long b = 1113;

if(a == b)
{
    System.out.println("Equals");
}else{
    System.out.println("not equals");
}

приведенный выше код печатает "equals" в консоли, что является неправильным ответом. мои вопросы - как сравнить длинное значение переменной, равное значению Long variable. пожалуйста, переиграйте меня как можно скорее.

С уважением, вы

Ответ 1

Сначала ваш код не скомпилирован. Линия   Длинные b = 1113;

неверно. Вы должны сказать

Long b = 1113L;

Во-вторых, когда я исправил эту проблему компиляции, код, напечатанный "не равно".

Ответ 2

Он работает как ожидалось,

Попробуйте проверить IdeOneDemo

 public static void main(String[] args) {
        long a = 1111;
        Long b = 1113l;

        if (a == b) {
            System.out.println("Equals");
        } else {
            System.out.println("not equals");
        }
    }

печатает

not equals для меня

Использовать compareTo() для сравнения Long, == wil не работать во всех случаях, поскольку значение кэшируется

Ответ 3

long a = 1111;
Long b = new Long(1113);

System.out.println(b.equals(a) ? "equal" : "different");
System.out.println((long) b == a ? "equal" : "different");

Ответ 4

С одной стороны, Long - это объект, а с другой стороны - примитивный тип. Чтобы сравнить их, вы можете получить примитивный тип из длинного типа:

public static void main(String[] args) {
    long a = 1111;
    Long b = 1113;

    if ((b!=null)&&
        (a == b.longValue())) 
    {
        System.out.println("Equals");
    } 
    else 
    {
        System.out.println("not equals");
    }
}

Ответ 5

Я расскажу, как это сделать, поскольку Java 7 -

Long first = 12345L, second = 123L;
System.out.println(first.equals(second));

вывод возвращается: false

и второй пример совпадения -

Long first = 12345L, second = 12345L;
System.out.println(first.equals(second));
Возвращаемое значение

: true

Итак, я верю в метод equals для сравнения значения Object, надеюсь, вам это поможет, спасибо.

Ответ 6

Начиная с Java 7 вы можете использовать java.util.Objects.equals(Object a, Object b):

Эти утилиты включают нулевые или нулеустойчивые методы.

Long id1 = null;
Long id2 = 0l;
Objects.equals(id1, id2));

Ответ 7

    public static void main(String[] args) {
        long a = 1111;
        Long b = 1113L;
        if(a == b.longValue())
    {
        System.out.println("Equals");
    }else{
        System.out.println("not equals");
    }
  }

or:

    public static void main(String[] args) {
        long a = 1111;
        Long b = 1113L;
        if(a == b)
    {
        System.out.println("Equals");
    }else{
        System.out.println("not equals");
    }
  }