覆盖Comparable<T>接口中定义了comapreTo()方法,实现长方形比较大小(面积大的则大)。
时间: 2024-12-13 09:27:56 浏览: 7
Java字母加数字组合比较大小
`Comparable<T>`接口是Java中的一个内置接口,主要用于自定义类之间的自然排序。在这个场景下,假设我们要比较长方形(Rectangle)的面积,我们可以覆盖`Comparable<Rectangle>`接口的`compareTo()`方法,这样每个长方形就会有一个按照面积大小的排序顺序。
首先,我们需要创建一个`Rectangle`类,包含长和宽作为属性,并添加一个计算面积的方法:
```java
public class Rectangle implements Comparable<Rectangle> {
private int length;
private int width;
public Rectangle(int length, int width) {
this.length = length;
this.width = width;
}
public int getLength() {
return length;
}
public int getWidth() {
return width;
}
public int getArea() {
return length * width;
}
// 实现Comparable接口的compareTo()方法
@Override
public int compareTo(Rectangle other) {
int myArea = getArea();
int otherArea = other.getArea();
if (myArea > otherArea) {
return 1; // 自己的面积大于对方,则返回正数
} else if (myArea < otherArea) {
return -1; // 自己的面积小于对方,则返回负数
} else { // 面积相等
return 0;
}
}
}
```
现在,你可以使用`Collections.sort()`方法对一个`Rectangle`数组或列表进行按面积排序,因为它们已经实现了`Comparable<Rectangle>`:
```java
List<Rectangle> rectangles = ... // 初始化长方形列表
Collections.sort(rectangles);
```
阅读全文