TrianleAreaCompatator.java
时间: 2024-01-19 14:02:42 浏览: 18
好的,这是一个 Java 类,用于比较三角形的面积大小。下面是这个类的代码:
```java
import java.util.Comparator;
public class TriangleAreaComparator implements Comparator<Triangle> {
// 比较两个三角形的面积大小
@Override
public int compare(Triangle t1, Triangle t2) {
double area1 = t1.getArea();
double area2 = t2.getArea();
if (area1 < area2) {
return -1;
} else if (area1 == area2) {
return 0;
} else {
return 1;
}
}
}
```
这个类实现了 Java 提供的 Comparator 接口,用于比较两个 Triangle 对象的大小。在这个类中,我们重写了 compare 方法,比较两个三角形的面积大小,返回一个整数,表示它们的大小关系。如果 t1 的面积小于 t2 的面积,返回 -1;如果 t1 的面积等于 t2 的面积,返回 0;如果 t1 的面积大于 t2 的面积,返回 1。
需要注意的是,Triangle 是一个自定义类,它包含三个表示三角形三个顶点的 Point 对象。在 Triangle 类中,我们还提供了一个计算三角形面积的方法 getArea。在 TriangleAreaComparator 中,我们调用了 t1.getArea() 和 t2.getArea() 方法,获取两个三角形的面积进行比较。
TriangleAreaComparator 可以用于对 Triangle 对象进行排序,例如:
```java
Triangle t1 = new Triangle(new Point(0, 0), new Point(0, 1), new Point(1, 0));
Triangle t2 = new Triangle(new Point(0, 0), new Point(1, 1), new Point(1, 0));
Triangle t3 = new Triangle(new Point(0, 0), new Point(2, 2), new Point(1, 0));
List<Triangle> triangles = Arrays.asList(t1, t2, t3);
triangles.sort(new TriangleAreaComparator());
for (Triangle triangle : triangles) {
System.out.println(triangle.getArea());
}
```
这段代码中,我们创建了三个 Triangle 对象,并将它们存储在一个 List 中。然后,我们使用 TriangleAreaComparator 对这个 List 进行排序,并输出每个三角形的面积。