**课堂练习:** 1、定义一个比较器类,可以实现不同类型的数比较;为了简化工作量,这里仅实现double和int类型的两个数比较。定义一个测试类,生成一个比较器对象,分别测试两种类型数的比较。 //chapter3/Pract3.java
时间: 2024-10-12 17:05:12 浏览: 3
在Java中,你可以创建一个`Comparator`接口的实现类来完成这个课堂练习。`Comparator`是一个功能强大的工具,用于对集合元素进行自定义排序。对于本题目的需求,我们可以定义一个名为`NumberComparator`的类,它会重写`compare()`方法,以便针对double和int类型进行比较。
```java
import java.util.Comparator;
class NumberComparator implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Double && o2 instanceof Double) {
return Double.compare((Double) o1, (Double) o2);
} else if (o1 instanceof Integer && o2 instanceof Integer) {
return ((Integer) o1).compareTo((Integer) o2);
} else {
throw new IllegalArgumentException("Unsupported data types for comparison");
}
}
}
public class Pract3Test {
public static void main(String[] args) {
// 创建NumberComparator对象
NumberComparator comparer = new NumberComparator();
// 测试double类型比较
double num1 = 5.5;
double num2 = 3.0;
System.out.println("Comparing doubles: " + comparer.compare(num1, num2));
// 测试int类型比较
int num3 = 10;
int num4 = 5;
System.out.println("Comparing integers: " + comparer.compare(num3, num4));
// 提示:注意检查异常处理,因为不是所有对象都实现了Comparable接口,如果直接比较可能会抛出异常
}
}
```
在这个例子中,`Pract3Test`类负责生成比较器对象并进行实际的比较操作。运行程序,你会看到double和int类型的比较结果。