java10.完成手机超市管理系统功能 定义一个手机类,包含手机品牌,价格,型号,封装该类的属性,并定义该类的有参构造方法实现对属性的赋值. 创建几个手机类对象, 将手机对象依次保存到HashSet中(要求: 品牌及型号相同的对象,不能再次添加) 将HashSet中的元素使用迭代器换行输出. 打印集合中品牌为”华为”的手机个数.
时间: 2024-02-12 12:03:40 浏览: 146
好的,以下是实现代码:
Phone.java
```java
public class Phone {
private String brand;
private double price;
private String model;
public Phone(String brand, double price, String model) {
this.brand = brand;
this.price = price;
this.model = model;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Phone phone = (Phone) o;
return Objects.equals(brand, phone.brand) &&
Objects.equals(model, phone.model);
}
@Override
public int hashCode() {
return Objects.hash(brand, model);
}
}
```
PhoneMarket.java
```java
import java.util.HashSet;
import java.util.Iterator;
public class PhoneMarket {
public static void main(String[] args) {
HashSet<Phone> phoneSet = new HashSet<>();
phoneSet.add(new Phone("华为", 2999.0, "P30"));
phoneSet.add(new Phone("小米", 1999.0, "MIX"));
phoneSet.add(new Phone("华为", 3999.0, "Mate 20"));
phoneSet.add(new Phone("苹果", 5999.0, "iPhone X"));
phoneSet.add(new Phone("华为", 2999.0, "P30"));
Iterator<Phone> iterator = phoneSet.iterator();
while (iterator.hasNext()) {
Phone phone = iterator.next();
System.out.println(phone.getBrand() + " " + phone.getModel() + " " + phone.getPrice());
}
int count = 0;
for (Phone phone : phoneSet) {
if (phone.getBrand().equals("华为")) {
count++;
}
}
System.out.println("品牌为华为的手机个数为:" + count);
}
}
```
在Phone类中,我们定义了品牌、价格和型号三个属性,并使用有参构造方法实现对这三个属性的赋值。同时,我们还重写了equals()和hashCode()方法,以便在HashSet中进行判重。在PhoneMarket类中,我们创建了一个HashSet,往其中添加了5个手机对象,并使用迭代器遍历输出集合中的元素。最后,我们统计了品牌为“华为”的手机个数,并输出结果。
阅读全文