使用TrianleAreaCompatator.java类比较三角形的面积并输出
时间: 2024-03-15 19:44:47 浏览: 19
好的,我可以帮你解决这个问题。
首先,我们需要创建一个Triangle类来表示三角形,并且实现一个TriangleAreaComparator类来比较两个三角形的面积大小。
下面是Triangle类的代码:
```java
public class Triangle {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
public double getArea() {
return 0.5 * base * height;
}
}
```
Triangle类有一个构造函数来初始化三角形的底边和高,还有一个getArea()方法来计算三角形的面积。
接下来,我们需要实现一个TriangleAreaComparator类来比较两个Triangle对象的面积大小。代码如下:
```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 1;
} else {
return 0;
}
}
}
```
这个类实现了Comparator接口,并重写了compare()方法。该方法比较两个Triangle对象的面积大小,并返回一个int值来指示哪个Triangle对象的面积更大。
最后,我们需要在main()方法中创建几个Triangle对象,并使用TriangleAreaComparator类来比较它们的面积大小。代码如下:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Triangle t1 = new Triangle(4, 5);
Triangle t2 = new Triangle(3, 6);
Triangle t3 = new Triangle(2, 7);
Triangle[] triangles = {t1, t2, t3};
Arrays.sort(triangles, new TriangleAreaComparator());
for (Triangle t : triangles) {
System.out.println("Area: " + t.getArea());
}
}
}
```
这个程序创建了三个Triangle对象,将它们存储在一个数组中,然后使用Arrays.sort()方法和TriangleAreaComparator类来对三角形按面积进行排序。最后,程序输出每个三角形的面积。
希望这个示例代码可以帮助你解决问题!