使用HashSet和TreeSet存储多个商品信息,遍历并输出:其中商品属性:编号、名称、单价、出版社。 [基本要求] 向Set中添加多个相同的商品,需要验证集合中元素的唯一性。(编码相同认为是同一商品) [测试数据] 自定义。
时间: 2024-11-22 12:37:47 浏览: 23
在Java中,你可以使用`HashSet`和`TreeSet`来存储商品信息。由于`HashSet`不允许有重复元素,而`TreeSet`则是基于有序红黑树,它会自动去除重复元素并保持插入顺序(如果只关心元素的唯一性),我们可以选择`HashSet`来实现这个需求。
假设有一个`Product`类,包含商品编号、名称、单价和出版社等属性,那么可以这样做:
```java
import java.util.*;
class Product {
int id;
String name;
double price;
String publisher;
// 构造函数,getters和setters...
}
public class Main {
public static void main(String[] args) {
HashSet<Product> productSet = new HashSet<>(); // 用于存储唯一的商品
// 添加商品
Product product1 = new Product();
product1.setId(1);
product1.setName("Book1");
product1.setPrice(25.0);
product1.setPublisher("Publisher1");
Product product2 = new Product(); // 编码相同视为同一商品
product2.setId(1);
product2.setName("Book1"); // 名称和出版社相同,所以这被视为同一个产品
product2.setPrice(26.0);
product2.setPublisher("Publisher1");
productSet.add(product1);
productSet.add(product2);
// 遍历并输出商品信息
for (Product p : productSet) {
System.out.printf("ID: %d, Name: %s, Price: %.2f, Publisher: %s\n", p.getId(), p.getName(), p.getPrice(), p.getPublisher());
}
}
}
```
这段代码首先创建了一个`HashSet`,然后尝试添加两个具有相同编码的商品。因为`HashSet`不允许重复元素,所以第二个商品不会被添加进去。最后,通过迭代集合来遍历和输出每个商品的信息。
阅读全文