创建商品的TreeMap集合,要求键存放商品的价格,值存放商品的名称,得到的商品集合可以按照商品价格升序或者降序进行排列
时间: 2024-09-11 16:05:54 浏览: 35
java集合-TreeMap的使用
在Java中,可以使用`TreeMap`来创建一个键为商品价格,值为商品名称的集合。`TreeMap`是基于红黑树的`NavigableMap`实现,它可以根据键的自然顺序进行排序,也可以通过构造器提供一个`Comparator`来对键进行排序。以下是创建这样一个集合,并能够根据价格升序或降序排列商品的示例:
1. 升序排列:
```java
import java.util.Comparator;
import java.util.TreeMap;
public class ProductMap {
public static void main(String[] args) {
// 创建一个TreeMap实例,指定Comparator来按照价格升序排列
TreeMap<Double, String> products = new TreeMap<>(new Comparator<Double>() {
@Override
public int compare(Double price1, Double price2) {
return price1.compareTo(price2);
}
});
// 添加商品数据
products.put(99.99, "商品A");
products.put(29.99, "商品B");
products.put(12.99, "商品C");
// 打印升序排列的商品
System.out.println("按价格升序排列的商品:");
for (Map.Entry<Double, String> entry : products.entrySet()) {
System.out.println("价格: " + entry.getKey() + ", 名称: " + entry.getValue());
}
}
}
```
2. 降序排列:
```java
import java.util.Comparator;
import java.util.TreeMap;
public class ProductMap {
public static void main(String[] args) {
// 创建一个TreeMap实例,指定Comparator来按照价格降序排列
TreeMap<Double, String> products = new TreeMap<>(new Comparator<Double>() {
@Override
public int compare(Double price1, Double price2) {
return price2.compareTo(price1);
}
});
// 添加商品数据
products.put(99.99, "商品A");
products.put(29.99, "商品B");
products.put(12.99, "商品C");
// 打印降序排列的商品
System.out.println("按价格降序排列的商品:");
for (Map.Entry<Double, String> entry : products.entrySet()) {
System.out.println("价格: " + entry.getKey() + ", 名称: " + entry.getValue());
}
}
}
```
在上述代码中,通过定义不同的`Comparator`,我们实现了`TreeMap`按照商品价格的升序或降序排列。在实际应用中,你可以根据需要选择使用哪种排序方式。
阅读全文