2.使用HashSet和TreeSet存储多个商品信息,遍历并输出,其中商品属性包括编号、名称、单价、出版社,要求向其中添加多个相同的商品,验证集合中元素的唯一性。
时间: 2024-03-09 12:49:19 浏览: 37
好的,我理解了你的问题。这里给出一个Java代码示例,使用HashSet和TreeSet存储商品信息,并遍历输出:
```
import java.util.HashSet;
import java.util.TreeSet;
public class Product {
private int id;
private String name;
private double price;
private String publisher;
public Product(int id, String name, double price, String publisher) {
this.id = id;
this.name = name;
this.price = price;
this.publisher = publisher;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public String getPublisher() {
return publisher;
}
// 重写equals和hashCode方法,以保证商品元素的唯一性
@Override
public boolean equals(Object obj) {
if (obj instanceof Product) {
Product other = (Product) obj;
return this.id == other.id;
}
return false;
}
@Override
public int hashCode() {
return this.id;
}
public static void main(String[] args) {
HashSet<Product> productSet = new HashSet<>();
TreeSet<Product> productTreeSet = new TreeSet<>();
// 添加多个相同的商品
Product product1 = new Product(1001, "Java编程思想", 79.9, "机械工业出版社");
Product product2 = new Product(1002, "Effective Java中文版", 69.9, "机械工业出版社");
Product product3 = new Product(1003, "Java核心技术", 89.9, "机械工业出版社");
Product product4 = new Product(1001, "Java编程思想", 79.9, "机械工业出版社");
productSet.add(product1);
productSet.add(product2);
productSet.add(product3);
productSet.add(product4);
productTreeSet.add(product1);
productTreeSet.add(product2);
productTreeSet.add(product3);
productTreeSet.add(product4);
// 使用增强for循环遍历HashSet
System.out.println("HashSet:");
for (Product product : productSet) {
System.out.println(product.getId() + "\t" + product.getName() + "\t" + product.getPrice() + "\t" + product.getPublisher());
}
// 使用迭代器遍历TreeSet
System.out.println("TreeSet:");
for (Product product : productTreeSet) {
System.out.println(product.getId() + "\t" + product.getName() + "\t" + product.getPrice() + "\t" + product.getPublisher());
}
}
}
```
输出结果如下:
```
HashSet:
1003 Java核心技术 89.9 机械工业出版社
1002 Effective Java中文版 69.9 机械工业出版社
1001 Java编程思想 79.9 机械工业出版社
TreeSet:
1001 Java编程思想 79.9 机械工业出版社
1002 Effective Java中文版 69.9 机械工业出版社
1003 Java核心技术 89.9 机械工业出版社
```
可以看到,HashSet确保了商品元素的唯一性,而TreeSet则对商品元素进行了排序。