3.有10个U盘,有两个重要的属性,即价格和容量。编写一个程序,使用TreeMap<K,V>类,分别按照价格和容量排序输出10个U盘的详细信息。
时间: 2023-06-04 16:02:46 浏览: 246
好的,这是一个计算机编程相关的问题,我可以回答。以下是示例代码:
```java
import java.util.*;
class UDisk implements Comparable<UDisk> {
private String name;
private int price; // 价格
private int capacity; // 容量
public UDisk(String name, int price, int capacity) {
this.name = name;
this.price = price;
this.capacity = capacity;
}
// 按价格排序
@Override
public int compareTo(UDisk other) {
return Integer.compare(this.price, other.price);
}
@Override
public String toString() {
return "name=" + name + ", price=" + price + ", capacity=" + capacity;
}
}
public class Main {
public static void main(String[] args) {
List<UDisk> udiskList = new ArrayList<>();
udiskList.add(new UDisk("U盘1", 50, 8));
udiskList.add(new UDisk("U盘2", 100, 16));
udiskList.add(new UDisk("U盘3", 30, 16));
udiskList.add(new UDisk("U盘4", 80, 32));
udiskList.add(new UDisk("U盘5", 20, 4));
udiskList.add(new UDisk("U盘6", 60, 8));
udiskList.add(new UDisk("U盘7", 150, 32));
udiskList.add(new UDisk("U盘8", 200, 64));
udiskList.add(new UDisk("U盘9", 40, 4));
udiskList.add(new UDisk("U盘10", 70, 16));
// 按价格排序
Map<UDisk, Integer> priceMap = new TreeMap<>();
for (UDisk udisk : udiskList) {
priceMap.put(udisk, udisk.price);
}
System.out.println("按价格排序:");
for (UDisk udisk : priceMap.keySet()) {
System.out.println(udisk.toString());
}
// 按容量排序
Map<UDisk, Integer> capacityMap = new TreeMap<>();
for (UDisk udisk : udiskList) {
capacityMap.put(udisk, udisk.capacity);
}
System.out.println("按容量排序:");
for (UDisk udisk : capacityMap.keySet()) {
System.out.println(udisk.toString());
}
}
}
```
希望这个示例代码能够解决你的问题。
阅读全文