6-12 定义Rectangle矩形类和MyCompare类,实现矩形数组中的对象按面积从小到大输出。 分数 10 作者 邱颖豫 单位 许昌学院 定义Rectangle矩形类和MyCompare类,实现矩形数组中的对象按面积从小到大输出。 裁判测试程序样例: import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Rectangle[] arr = new Rectangle[5]; for (int i = 0; i < arr.length; i++) { arr[i] = new Rectangle(sc.nextInt(), sc.nextInt());// 输入矩形的长和宽 } MyCompare mc = new MyCompare(); //提示:要实现Comparator接口 Arrays.sort(arr, mc); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i] + "->" + arr[i].getArea()); } sc.close(); } } /* 请在这里填写答案 */ 输入样例: 输入5个矩形的长和宽 3 5 2 6 1 4 4 5 2 3 输出样例: 按面积从小到大输出矩形 1,4->4 2,3->6 2,6->12 3,5->15 4,5->20 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2024-02-22 11:57:15 浏览: 30
代码如下:
```
import java.util.Comparator;
class Rectangle {
private int length;
private int width;
public Rectangle(int length, int width) {
this.length = length;
this.width = width;
}
public int getArea() {
return length * width;
}
public String toString() {
return length + "," + width;
}
}
class MyCompare implements Comparator<Rectangle> {
public int compare(Rectangle r1, Rectangle r2) {
return r1.getArea() - r2.getArea();
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Rectangle[] arr = new Rectangle[5];
for (int i = 0; i < arr.length; i++) {
arr[i] = new Rectangle(sc.nextInt(), sc.nextInt());// 输入矩形的长和宽
}
MyCompare mc = new MyCompare(); //提示:要实现Comparator接口
Arrays.sort(arr, mc);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i] + "->" + arr[i].getArea());
}
sc.close();
}
}
```