public class Test{ public static void main(String[] args) { Tree[] trees={new Tree(20),new Tree(10), new Tree(8)}; java.util.Arrays.sort(trees); //对数组依据height进行排序 for(Tree tree:trees){ System.out.print(____ +"\t");//输出树木的高度 } } } class Tree ____ { //实现Comparable接口 private int height; Tree(int height){ ____ ; //初始化成员变量height } public int getHeight() { return this.height; } @Override //实现定义在Comparable接口中的compareTo方法 public int compareTo(Tree o){ if(____) return 1; // 大于关系 else if(____) return 0;//等于关系 else return -1; } }
时间: 2024-04-08 09:35:16 浏览: 38
下面是完整的代码:
```java
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
Tree[] trees = {new Tree(20), new Tree(10), new Tree(8)};
Arrays.sort(trees); // 对数组依据height进行排序
for (Tree tree : trees) {
System.out.print(tree.getHeight() + "\t"); // 输出树木的高度
}
}
}
class Tree implements Comparable<Tree> { // 实现Comparable接口
private int height;
Tree(int height) {
this.height = height; // 初始化成员变量height
}
public int getHeight() {
return this.height;
}
@Override
public int compareTo(Tree o) { // 实现定义在Comparable接口中的compareTo方法
if (this.height > o.getHeight()) return 1; // 大于关系
else if (this.height == o.getHeight()) return 0; // 等于关系
else return -1;
}
}
```
在上述代码中,`Test` 类的 `main()` 方法中创建了一个 `Tree` 类型的数组 `trees`,并初始化了其中的元素。然后使用 `Arrays.sort(trees)` 对数组进行排序,这里实现了对树木对象按照高度进行排序。
`Tree` 类实现了 `Comparable` 接口,并重写了 `compareTo()` 方法,用于定义树木对象之间的比较规则。在 `compareTo()` 方法中,通过比较当前树木对象的高度与另一个树木对象的高度来确定它们之间的大小关系。
最后,通过遍历排序后的数组,使用 `tree.getHeight()` 方法获取树木的高度,并输出到控制台上。
输出结果将会是树木的高度按升序排列。
阅读全文