一个类集问题,求完整程序,谢谢大家了。。
//定义一个商品信息类,成员变量包括:商品名称、单价、数量,封装成员变量。//定义购物车类,设置方法1、增加商品方法,2、查找商品方法、3、修改商品方法、4、删除商品方法、5、打印商品信息方法。
//请分别使用数组、Set、List、Map集合来完成以上的功能,用哪种集合完成购物车功能效率最高。
一定结贴 --------------------编程问答-------------------- 使用map。
其中key设置为你商品的id,value设置为你商品对象。
当出现CURD的时候,可以根据商品的id,在map中快速查找出你的商品信息。 --------------------编程问答-------------------- 果断用Map --------------------编程问答-------------------- 用Map好一些,方便定位商品
for example
本例中以name作为唯一标识,具体可以自由发挥
class Product {
String name;
double price;
int amount;
public Product(String name, double price, int amount) {
this.name = name;
this.price = price;
this.amount = amount;
}
public String getName() {return name;}
public double getPrice() {return price;}
public int getAmount() {return amount;}
public void setPrice(double price) {this.price = price;}
public void setAmount(int amount) {this.amout = amount;}
public String toString() {
return String.format("[name=%s, price=%.2f, amount=%d]", name, price, amount);
}
}
public class ShoppingCar {
Map<String, Product> map = new HashMap<String, Product>();
public ShoppingCar() {}
public void add(Product p) { //可以重载各种方法
if (map.containsKey(p.getName())) {
map.get(p.getName()).setAmount(p.getAmount()+amount);
} else {
map.put(p.getName(), p);
}
}
public Product search(String name) {
return map.get(name);
}
public void update(Product p) {
map.put(p.getName(), p);
}
public Product remove(String name) {
return map.remove(name);
}
public void print() {
for (Product p : map.values()) {
System.out.println(p);
}
}
public static void main(String[] args) {
ShoppingCar car = new ShoppingCar();
Product p1 = new Product("p1", 20.00, 5);
Product p2 = new Product("p2", 35.00, 3);
car.add(p1);
car.add(p2);
car.print();
Product p = car.search("p2");
p.setAmount(10);
p.setPrice(50.50);
car.update(p);
car.print();
car.remove(p.getName());
car.print();
}
}
--------------------编程问答-------------------- --------------------编程问答-------------------- set代表无序不可重复的集合,list代表有序可重复的集合,map代表具有映射关系的集合,购车物一般用map
补充:Java , J2ME