定义Rectangle矩形类和MyCompare类,使用compareTo 实现矩形数组中的对象按面积从小到大输出定义Rectangle矩形类和MyCompare类,实现矩形数组中的对象按面积从小到大输出。只有长宽 没高 java
时间: 2024-02-16 10:04:29 浏览: 107
java代码-类名为Rectangle(矩形),它有两个整型的变量width(宽)和height(高);有一个方法area(),没有参数,返回类型为double,功能是求矩形的面积;还有另一个方法为perimeter()没有参数,返回类型为double,功能是求矩形的周长
好的,这里是使用 `compareTo` 函数实现的 Java 代码:
```java
import java.util.Arrays;
// 定义矩形类
class Rectangle implements Comparable<Rectangle> {
int width, height;
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
public int getArea() {
return width * height;
}
public int compareTo(Rectangle other) {
if (this.getArea() < other.getArea()) {
return -1;
} else if (this.getArea() > other.getArea()) {
return 1;
} else {
return 0;
}
}
}
// 定义比较类
class MyCompare implements java.util.Comparator<Rectangle> {
public int compare(Rectangle a, Rectangle b) {
return a.compareTo(b);
}
}
public class Main {
public static void main(String[] args) {
Rectangle[] rectArr = { new Rectangle(2, 3), new Rectangle(1, 4), new Rectangle(3, 2) };
int n = rectArr.length;
// 使用 Arrays.sort 方法按面积排序
Arrays.sort(rectArr);
// 输出排序后的结果
for (int i = 0; i < n; i++) {
System.out.println("width: " + rectArr[i].width + ", height: " + rectArr[i].height + ", area: " + rectArr[i].getArea());
}
}
}
```
这里我们同样定义了矩形类 `Rectangle` 和比较类 `MyCompare`。不同的是,我们使用了 `Comparable` 接口来定义 `Rectangle` 类的比较规则。
在 `MyCompare` 类中,我们实现了 `Comparator` 接口来定义比较规则,即调用 `Rectangle` 类的 `compareTo` 函数进行比较。
在 `main` 函数中,我们使用了 `Arrays.sort` 方法来对矩形数组进行排序。由于 `Rectangle` 类实现了 `Comparable` 接口,所以我们直接调用 `Arrays.sort` 方法即可。最后,我们按照格式输出了排序后的结果。
阅读全文