编写手机类(MobilePhone),含有type(型号,String类型)、price(价格,int类型)属性,要求该类实现Comparable接口,重写compareTo方法,实现按照price的大小来确定两个手机对象的大小关系。 在链表中添加三个手机对象(从键盘输入),通过Collections类的sort方法对链表中的对象按照price升序排序。输入第四个手机对象的信息,并查找它的price是否与链表中某个对象的price相同。
时间: 2024-03-06 22:51:18 浏览: 160
好的,下面是实现了Comparable接口并重写了compareTo方法的MobilePhone类的示例代码:
```java
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 o) {
return Integer.compare(this.price, o.price);
}
}
```
在这个示例代码中,我们定义了一个MobilePhone类,包含了型号和价格两个属性。为了实现按照价格大小比较手机对象,我们实现了Comparable接口,并重写了compareTo方法。在compareTo方法中,我们使用了Integer.compare方法来比较两个手机对象的价格大小。
接下来,我们可以创建一个链表,往里面添加三个手机对象(从键盘输入),然后使用Collections类的sort方法按照价格升序对链表中的手机进行排序。示例代码如下:
```java
Scanner scanner = new Scanner(System.in);
List<MobilePhone> mobilePhones = new LinkedList<>();
for (int i = 0; i < 3; i++) {
System.out.print("请输入第" + (i + 1) + "个手机的型号:");
String type = scanner.next();
System.out.print("请输入第" + (i + 1) + "个手机的价格:");
int price = scanner.nextInt();
mobilePhones.add(new MobilePhone(type, price));
}
Collections.sort(mobilePhones);
```
最后,我们可以创建第四个手机对象,查找它的价格是否与链表中某个对象的价格相同。示例代码如下:
```java
System.out.print("请输入第四个手机的型号:");
String type = scanner.next();
System.out.print("请输入第四个手机的价格:");
int price = scanner.nextInt();
MobilePhone fourthMobilePhone = new MobilePhone(type, price);
for (MobilePhone mobilePhone : mobilePhones) {
if (mobilePhone.getPrice() == fourthMobilePhone.getPrice()) {
System.out.println("找到了价格相同的手机:" + mobilePhone.getType());
break;
}
}
```
这样,我们就完成了按照价格大小比较手机对象、排序手机列表以及查找价格相同的手机的任务。
阅读全文