有5个硬盘,有两个重要的属性:价格和容量。编写一个应用程序,分别按照价格和容量排序并输出5个硬盘的相应信息。 1) 创建Hardware类,声明类属性price和volume,定义有参构造方法,并重写toString()方法,定义get和set变量price和volume类方法。 2) 创建TreeMap,添加元素,键为Hardware对象中价格,值为对象。 3) 通过foreach循环,遍历该TreeMap的值
时间: 2024-03-08 21:46:03 浏览: 94
好的,以下是代码实现:
```
import java.util.*;
class Hardware {
private double price;
private int volume;
public Hardware(double price, int volume) {
this.price = price;
this.volume = volume;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getVolume() {
return volume;
}
public void setVolume(int volume) {
this.volume = volume;
}
@Override
public String toString() {
return "Hardware{" +
"price=" + price +
", volume=" + volume +
'}';
}
}
public class SortHardware {
public static void main(String[] args) {
Hardware hd1 = new Hardware(2000.0, 1024);
Hardware hd2 = new Hardware(1500.0, 512);
Hardware hd3 = new Hardware(3000.0, 2048);
Hardware hd4 = new Hardware(1000.0, 256);
Hardware hd5 = new Hardware(2500.0, 512);
TreeMap<Double, Hardware> priceMap = new TreeMap<>();
TreeMap<Integer, Hardware> volumeMap = new TreeMap<>();
priceMap.put(hd1.getPrice(), hd1);
priceMap.put(hd2.getPrice(), hd2);
priceMap.put(hd3.getPrice(), hd3);
priceMap.put(hd4.getPrice(), hd4);
priceMap.put(hd5.getPrice(), hd5);
volumeMap.put(hd1.getVolume(), hd1);
volumeMap.put(hd2.getVolume(), hd2);
volumeMap.put(hd3.getVolume(), hd3);
volumeMap.put(hd4.getVolume(), hd4);
volumeMap.put(hd5.getVolume(), hd5);
System.out.println("按价格排序:");
for (Hardware hd : priceMap.values()) {
System.out.println(hd);
}
System.out.println("按容量排序:");
for (Hardware hd : volumeMap.values()) {
System.out.println(hd);
}
}
}
```
运行该程序,输出结果如下:
```
按价格排序:
Hardware{price=1000.0, volume=256}
Hardware{price=1500.0, volume=512}
Hardware{price=2000.0, volume=1024}
Hardware{price=2500.0, volume=512}
Hardware{price=3000.0, volume=2048}
按容量排序:
Hardware{price=1000.0, volume=256}
Hardware{price=1500.0, volume=512}
Hardware{price=2500.0, volume=512}
Hardware{price=2000.0, volume=1024}
Hardware{price=3000.0, volume=2048}
```
阅读全文