参考验证性实验中的按身高排序,完成以下编程任务: 编写 TV 类,要求该类通过实现 Comparable 接口,规定该类对象的大小关 系按 price 值的大小确定,即电视机按其价格确定大小关系。 链表添加 5 个 TV 对象,Collections 类调用 sort()方法将链表中的对象按其 price 值升序排列,并查找一个 TV 对象的 price 值是否和链表中某个对象的 price 值相同。
时间: 2024-02-22 22:57:11 浏览: 109
好的,以下是代码实现:
```java
import java.util.*;
class TV implements Comparable<TV> {
private String name;
private int price;
public TV(String name, int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
@Override
public int compareTo(TV other) {
return this.price - other.price;
}
}
public class SortTV {
public static void main(String[] args) {
// 创建链表并添加 TV 对象
List<TV> tvList = new LinkedList<>();
tvList.add(new TV("TV1", 2000));
tvList.add(new TV("TV2", 3000));
tvList.add(new TV("TV3", 1500));
tvList.add(new TV("TV4", 2500));
tvList.add(new TV("TV5", 1800));
// 排序
Collections.sort(tvList);
// 输出排序结果
for (TV tv : tvList) {
System.out.println(tv.getName() + " " + tv.getPrice());
}
// 查找某个 TV 对象的 price 值是否和链表中某个对象的 price 值相同
int searchPrice = 2500;
for (TV tv : tvList) {
if (tv.getPrice() == searchPrice) {
System.out.println(tv.getName() + " has the same price: " + searchPrice);
break;
}
}
}
}
```
输出结果为:
```
TV3 1500
TV5 1800
TV1 2000
TV4 2500
TV2 3000
TV4 has the same price: 2500
```
其中,`TV` 类实现了 `Comparable` 接口,根据 `price` 值来比较对象大小关系。在 `SortTV` 类中,创建了一个链表,并添加了 5 个 `TV` 对象,然后调用 `Collections.sort()` 方法对链表中的对象按其 `price` 值升序排列。最后,搜索某个 `TV` 对象的 `price` 值是否和链表中某个对象的 `price` 值相同,并输出结果。