Преобразование Long в Int в Java: изучение различных методов

В Java вы можете столкнуться со сценариями, когда вам нужно преобразовать значение longв значение int. Этот процесс включает в себя извлечение целой части большего числа и сохранение ее в меньшем типе данных. В этой статье блога мы рассмотрим несколько методов достижения такого преобразования, дополненные разговорными объяснениями и примерами кода. Итак, приступим!

  1. Использование приведения.
    Один из самых простых способов преобразования longв int— использование приведения. Приведение позволяет явно преобразовать значение из одного типа данных в другой. Вот как это можно сделать:
long longValue = 123456789L;
int intValue = (int) longValue;

В этом примере longValueпреобразуется в intс использованием (int)перед именем переменной. Однако будьте осторожны при использовании приведения, так как это может привести к потере данных, если значение longвыйдет за пределы диапазона int.

  1. Использование метода intValue():
    Класс-оболочка Longв Java предоставляет удобный метод под названием intValue(), который позволяет извлекать значение intиз объекта Long:
Long longObject = 987654321L;
int intValue = longObject.intValue();

Вызывая intValue()для объекта Long, вы получаете соответствующее значение int.

  1. Использование метода Math.toIntExact():
    Если вы хотите преобразовать значение longв intи гарантировать отсутствие потери данных, вы можете используйте метод toIntExact()из класса Math:
long longValue = 999999999L;
try {
    int intValue = Math.toIntExact(longValue);
    // Use the intValue variable here
} catch (ArithmeticException e) {
    // Handle the exception caused by overflow
}

Метод toIntExact()выдает ArithmeticException, если значение longвыходит за пределы диапазона int.

  1. Использование побитовых операторов.
    Другой подход к преобразованию longв int— использование побитовых операторов. Этот метод предполагает отбрасывание старших бит значения long, оставляя только младшие биты, которые могут поместиться в int:
long longValue = 888888888L;
int intValue = (int) longValue; // Discards higher-order bits

Обратите внимание, что этот метод может привести к потере данных, если значение longпревышает диапазон int.

В этой статье блога мы рассмотрели несколько методов преобразования значения longв intв Java. Мы рассмотрели приведение с использованием метода intValue(), метода Math.toIntExact()и использования побитовых операторов. Не забывайте учитывать возможность потери данных при выполнении таких преобразований. Используя эти методы, вы можете уверенно выполнять преобразования long в int в своих программах на Java.