7-4 手机按价格排序、查找 分数 20 作者 吴光生 单位 新余学院 编写手机类(MobilePhone),含有type(型号,String类型)、price(价格,int类型)属性,要求该类实现Comparable接口,重写compareTo方法,实现按照price的大小来确定两个手机对象的大小关系。 在链表中添加三个手机对象(从键盘输入),通过Collections类的sort方法对链表中的对象按照price升序排序。输入第四个手机对象的信息,并查找它的price是否与链表中某个对象的price相
时间: 2024-02-28 22:57:37 浏览: 323
符,如果相符则输出该手机对象的型号和价格,否则输出“未找到该手机”。以下是实现该功能的代码:
```java
import java.util.*;
public class MobilePhone implements Comparable<MobilePhone> {
private String type;
private int price;
public MobilePhone(String type, int price) {
this.type = type;
this.price = price;
}
public String getType() {
return type;
}
public int getPrice() {
return price;
}
@Override
public int compareTo(MobilePhone other) {
return Integer.compare(this.price, other.price);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<MobilePhone> phones = new LinkedList<>();
for (int i = 0; i < 3; i++) {
System.out.print("请输入手机型号:");
String type = scanner.nextLine();
System.out.print("请输入手机价格:");
int price = scanner.nextInt();
scanner.nextLine();
phones.add(new MobilePhone(type, price));
}
System.out.print("请输入第四个手机型号:");
String type = scanner.nextLine();
System.out.print("请输入第四个手机价格:");
int price = scanner.nextInt();
scanner.nextLine();
MobilePhone phone4 = new MobilePhone(type, price);
Collections.sort(phones);
int index = Collections.binarySearch(phones, phone4);
if (index >= 0) {
MobilePhone phone = phones.get(index);
System.out.println("找到了手机,型号为:" + phone.getType() + ",价格为:" + phone.getPrice());
} else {
System.out.println("未找到该手机");
}
}
}
```
运行程序,输入三个手机的信息,然后输入第四个手机的信息,程序会输出该手机的价格是否与链表中某个对象的价格相符。
阅读全文