当前位置:编程学习 > JAVA >>

一个类集问题,求完整程序,谢谢大家了。。

//定义一个商品信息类,成员变量包括:商品名称、单价、数量,封装成员变量。
//定义购物车类,设置方法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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,