有10个U盘,有两个重要的属性:价格和容量。编写一个应用程序,使用 TreeMapK<K,V>类,分别按照价格和容量排序输出10个U盘的详细信息。
时间: 2024-02-14 19:09:57 浏览: 134
好的,我可以为您编写这个应用程序。以下是Java实现代码:
```java
import java.util.Comparator;
import java.util.TreeMap;
class USB {
String name;
int price;
int capacity;
public USB(String name, int price, int capacity) {
this.name = name;
this.price = price;
this.capacity = capacity;
}
public String toString() {
return name + " (Price: $" + price + ", Capacity: " + capacity + "GB)";
}
}
class PriceComparator implements Comparator<USB> {
public int compare(USB u1, USB u2) {
return u1.price - u2.price;
}
}
class CapacityComparator implements Comparator<USB> {
public int compare(USB u1, USB u2) {
return u1.capacity - u2.capacity;
}
}
public class USBInfo {
public static void main(String[] args) {
USB[] usbArray = {
new USB("USB 1", 20, 16),
new USB("USB 2", 15, 32),
new USB("USB 3", 30, 8),
new USB("USB 4", 10, 64),
new USB("USB 5", 25, 32),
new USB("USB 6", 5, 128),
new USB("USB 7", 40, 4),
new USB("USB 8", 35, 16),
new USB("USB 9", 50, 2),
new USB("USB 10", 45, 8)
};
TreeMap<USB, String> priceMap = new TreeMap<>(new PriceComparator());
for (USB u : usbArray) {
priceMap.put(u, u.toString());
}
System.out.println("Sorted by Price:");
for (String s : priceMap.values()) {
System.out.println(s);
}
TreeMap<USB, String> capacityMap = new TreeMap<>(new CapacityComparator());
for (USB u : usbArray) {
capacityMap.put(u, u.toString());
}
System.out.println("\nSorted by Capacity:");
for (String s : capacityMap.values()) {
System.out.println(s);
}
}
}
```
这个程序首先定义了一个`USB`类,它包含了U盘的名称、价格和容量属性。然后定义了两个比较器`PriceComparator`和`CapacityComparator`,用于按照价格和容量来排序。接着在`main`方法中创建了一个包含10个U盘的数组`usbArray`,并使用`TreeMap<USB, String>`来存储U盘对象和它们的详细信息字符串。
程序中分别使用`priceMap`和`capacityMap`两个`TreeMap`来按照价格和容量排序存储U盘对象和它们的详细信息字符串。最后,分别输出两个`TreeMap`中的信息,即按照价格排序的U盘信息和按照容量排序的U盘信息。
希望这个程序对您有所帮助!
阅读全文