Введение
В этом практическом занятии вы узнаете о методе hashCode() класса Float в Java. Этот метод используется для получения хэш-кода значения float. Хэш-код — это уникальное целочисленное значение, которое ассоциируется с каждым объектом в Java. В этом практическом занятии вам будет показано, как использовать метод hashCode() на различных примерах кода.
Создайте новый Java-файл
Сначала создайте новый Java-файл по пути ~/project/FloatHashcode.java с использованием следующей команды:
touch ~/project/FloatHashcode.java
Определите переменные Float
В этом шаге определите две переменные Float и инициализируйте их двумя различными значениями типа float. Также импортируйте класс Float из пакета java.lang.
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
Float n1 = 2.3456F;
Float n2 = -4.567F;
}
}
Получите хэш-код с использованием метода hashCode() класса Float
В этом шаге используйте метод hashCode() класса Float, чтобы получить хэш-код переменных Float, определенных на предыдущем шаге.
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
Float n1 = 2.3456F;
Float n2 = -4.567F;
int hash1 = n1.hashCode(); // get hash code of n1
int hash2 = n2.hashCode(); // get hash code of n2
System.out.println("Hash code for n1 is " + hash1);
System.out.println("Hash code for n2 is " + hash2);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Получить хэш-код для ввода пользователя
В этом шаге создайте программу, которая запрашивает у пользователя ввод значения float, получает хэш-код введенного значения с использованием метода hashCode() класса Float и затем выводит хэш-код в консоль.
import java.util.Scanner;
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a float value: ");
float input = scanner.nextFloat();
Float n = input;
int hashCode = n.hashCode();
System.out.println("Hash code for the input " + input + " is " + hashCode);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Сравнить хэш-коды двух значений Float
В этом шаге создайте программу, которая сравнивает хэш-коды двух значений Float.
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
Float n1 = 2.3456F;
Float n2 = 2.3456F;
int hash1 = n1.hashCode();
int hash2 = n2.hashCode();
if (hash1 == hash2) {
System.out.println("The hash codes of n1 and n2 are equal");
} else {
System.out.println("The hash codes of n1 and n2 are not equal");
}
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Переопределите метод hashCode() в классе
В этом шаге мы переопределим метод hashCode() в классе. Здесь мы создадим класс MyClass с двумя переменными float a и b. Затем мы переопределим метод hashCode() в классе и вычислим хэш-код объекта по формуле (31 * Float.floatToIntBits(a)) + Float.floatToIntBits(b).
import java.lang.Float;
class MyClass {
float a;
float b;
public MyClass(float a, float b) {
this.a = a;
this.b = b;
}
@Override
public int hashCode() {
return (31 * Float.floatToIntBits(a)) + Float.floatToIntBits(b);
}
}
public class FloatHashcode {
public static void main(String[] args) {
MyClass obj = new MyClass(2.3456F, -4.567F);
int hash = obj.hashCode();
System.out.println("Hash code for obj is " + hash);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Обработка нулевых указателей
В этом шаге создайте программу, которая обрабатывает нулевые указатели при получении хэш-кода объекта Float.
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
Float n = null;
int hash = (n!= null)? n.hashCode() : 0;
System.out.println("Hash code for n is " + hash);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Использовать Objects.hashCode() для получения хэш-кода
В этом шаге мы используем метод Objects.hashCode() для получения хэш-кода объекта Float. Этот метод возвращает хэш-код любого объекта, переданного ему, и优雅но обрабатывает нулевые указатели.
import java.lang.Float;
import java.util.Objects;
public class FloatHashcode {
public static void main(String[] args) {
Float n = null;
int hash = Objects.hashCode(n);
System.out.println("Hash code for n is " + hash);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Использовать Float.hashCode(float) для примитивных значений float
В этом шаге мы используем метод Float.hashCode(float) для получения хэш-кода примитивного значения float. Этот метод возвращает тот же хэш-код, который возвращает метод floatToIntBits(float).
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
float f = 2.3456F;
int hash = Float.hashCode(f);
System.out.println("Hash code for f is " + hash);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Используйте Float.floatToIntBits(float), чтобы получить целочисленное представление значения float
В этом шаге мы используем метод Float.floatToIntBits(float) для получения целочисленного представления значения float. Этот метод возвращает то же целочисленное представление, которое используется для вычисления хэш-кода значения float.
import java.lang.Float;
public class FloatHashcode {
public static void main(String[] args) {
float f = 2.3456F;
int intBits = Float.floatToIntBits(f);
System.out.println("Integer representation of f is " + intBits);
}
}
Для компиляции и запуска файла выполните следующие команды в терминале:
javac ~/project/FloatHashcode.java
java FloatHashcode
Резюме
В этом практическом занятии вы узнали о методе hashCode() класса Float в Java. Вы узнали, как получить хэш-код значения float, переопределить метод hashCode() в классе, использовать метод Objects.hashCode(), а также обрабатывать нулевые указатели при получении хэш-кода объекта. Вы также узнали о методе floatToIntBits(float), который используется для получения целочисленного представления значения float.



