java实现Comparable接口,改进Column类,将半径和高均改成double型,完成相同的排序要求。 Arrays.sort(数组名);
时间: 2023-06-16 07:04:13 浏览: 116
java 实现Comparable接口排序,升序、降序、倒叙
5星 · 资源好评率100%
好的,首先我们需要让`Column`类实现`Comparable`接口,以便能够进行排序。我们可以将`compareTo`方法定义为按照体积从小到大排序,即:
```java
public class Column implements Comparable<Column>{
private double radius;
private double height;
public Column(double radius, double height) {
this.radius = radius;
this.height = height;
}
public double getVolume() {
return Math.PI * radius * radius * height;
}
@Override
public int compareTo(Column other) {
if (this.getVolume() < other.getVolume()) {
return -1;
} else if (this.getVolume() > other.getVolume()) {
return 1;
} else {
return 0;
}
}
}
```
我们定义了一个`getVolume`方法,用于计算圆柱体积,然后在`compareTo`方法中按照体积大小进行比较。
接下来,我们可以使用`Arrays.sort`方法来对`Column`对象数组进行排序,例如:
```java
public static void main(String[] args) {
Column[] columns = new Column[3];
columns[0] = new Column(2.0, 3.0);
columns[1] = new Column(1.5, 4.0);
columns[2] = new Column(3.0, 2.0);
Arrays.sort(columns);
for (Column column : columns) {
System.out.println(column.getVolume());
}
}
```
这里我们创建了一个包含三个`Column`对象的数组,然后使用`Arrays.sort`方法对其进行排序,并打印每个圆柱的体积。排序结果如下:
```
18.84955592153876
21.205750411731103
28.274333882308138
```
阅读全文