java如何比较数字
比较数字的基本方法
在Java中,比较数字可以通过基本数据类型或包装类的比较操作实现。对于基本数据类型(如int、double等),直接使用比较运算符即可。
int a = 5;
int b = 10;
boolean result = (a < b); // true
对于包装类(如Integer、Double等),可以使用compareTo方法或拆箱后比较。
Integer x = 5;
Integer y = 10;
int comparisonResult = x.compareTo(y); // 返回负数(x < y)
浮点数比较的注意事项
浮点数(float、double)由于精度问题,直接使用==可能导致误差。推荐使用误差范围比较。
double d1 = 0.1 + 0.2;
double d2 = 0.3;
boolean isEqual = Math.abs(d1 - d2) < 1e-10; // 使用极小误差阈值
使用Objects.equals避免空指针
对于包装类,推荐使用Objects.equals方法,避免因null值导致的异常。
Integer num1 = null;
Integer num2 = 10;
boolean isSame = Objects.equals(num1, num2); // false
比较多个数字的最大/最小值
通过Math.max和Math.min可以快速比较两个数字,或结合流式操作处理集合。
int max = Math.max(5, Math.max(10, 15)); // 15
List<Integer> numbers = Arrays.asList(5, 10, 15);
int min = numbers.stream().min(Integer::compare).get(); // 5
自定义排序规则
实现Comparator接口可以定义复杂的比较逻辑,例如按绝对值或特定字段排序。

List<Integer> nums = Arrays.asList(-5, 3, -1);
nums.sort(Comparator.comparingInt(Math::abs)); // [ -1, 3, -5 ]






