JAVA中,定义了一个物品集合,如何通过一个商品的编号得到该商品的所有信息。 5

定义了一个商品集合,有商品编号goodsId,商品名称name,商品价格price,商品单位util,商品数量num,现在想通过一个商品编号来查询一个商品的所有信息,例如... 定义了一个商品集合,有商品编号goodsId,商品名称name,商品价格price,商品单位util,商品数量num,现在想通过一个商品编号来查询一个商品的所有信息,例如查找商品编号为1001的,就输出商品1001的编号、名称、价格、单位、数量。该怎么实现? 展开
 我来答
百度网友d96d75252
2018-03-01 · TA获得超过140个赞
知道答主
回答量:64
采纳率:91%
帮助的人:18万
展开全部
首先你自己创建一个商品类,比如 class Goods{},然后在这个类里边定义这些属性,比如你的name,price等,然后分别实现他们的get、set方法,完了之后定义一个list。
比如:list<Goods> glist = new ArrayList<Goods>();
现在你可以创建商品并将其放入这个list集合中了。
比如:Goods good = new Goods();
good.setGoodsId("goodsId"); good.setName("goodsName"); ...
然后将good存入list中,glist.add(good);
然后我们再定义第二件商品,比如是一个键盘
good = new Goods(); good.setName("键盘");.....
同样我们再将其放入list中,glist.add(good);
此时glist中有两件商品,假设我们现在输出第二件商品的所有信息
System.out.println(glist.get(1).getGoodsId());
System.out.println(glist.get(1).getName);
.......
注意,第一件商品为get(0),下标和数组类似
淡水千痕乀
2018-02-28 · TA获得超过360个赞
知道小有建树答主
回答量:141
采纳率:83%
帮助的人:29.5万
展开全部

javabean思想

public static void main(String args[]) {

    //模拟10个不重复的商品加入集合
    HashSet<Product> data = new HashSet<>();
    Random random = new Random();
    for (int i = 0; i < 10; i++) {
        int goodsId = random.nextInt(100);
        boolean isAdded = data.add(new Product(goodsId, goodsId + "name", goodsId, "util", goodsId));
        if (!isAdded) {
            i--;
        }
    }
    
    //如果知道一个id,得到所有信息?
    //将这个data转化为map,键为id值为javabean
    HashMap<Integer, Product> hashMap = new HashMap<>();
    for (Product item : data) {
        hashMap.put(item.goodsId, item);            
    }
    
    //拿到id,get就行了
    hashMap.get(??);
 
}
class Product {
    /**
     * 商品编号
     */
    int goodsId;

    /**
     * 商品名称
     */
    String name;

    /**
     * 商品价格
     */
    double price;

    /**
     * 商品单位
     */
    String util;

    /**
     * 商品数量
     */
    double num;

    public Product(int goodsId, String name, double price, String util, double num) {
        this.goodsId = goodsId;
        this.name = name;
        this.price = price;
        this.util = util;
        this.num = num;
    }

    @Override
    public boolean equals(Object obj) {
        return this.goodsId == ((Product) obj).goodsId;
    }

    @Override
    public String toString() {
        return "Product{" +
                "goodsId=" + goodsId +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", util='" + util + '\'' +
                ", num=" + num +
                '}';
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waykingchanglu
2012-08-01 · TA获得超过203个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:124万
展开全部
Class sp(){
private String id;
private String name;
private String price;
private String util;
private String num;

}
你说的集合是什么集合?下面循环集合 把集合中的 商品对象(sp)取出来和当前的id 1001判断就是了
追问
private LIst goodsList  = null;
goodsList = new ArrayList();
goodsList.add(1,name,price);//这是添加的信息,编号:1,名字name 价格price 下面的类似
goodsList.add(2,name,price);
goodsList.add(3,name,price);
goodsList.add(4,name,price);

现在想通过查询编号,例如查询到的编号为3,然后输出编号为3的商品的编号3,名字name,价格price。是如何实现?
追答
循环判断就好了,
上面的你添加是不正确的,

private LIst goodsList = null;
goodsList = new ArrayList();
Goods g=new Goods();
g.setId(1);
g.setName("name");
g.setPrice("price");

goodsList.add(g);//这里添加进list集合必须是一个Goods对象,因为上面你已经声明了list必 //须是存放的是Goods类型 private LIst goodsList = null;
这里添加的时候要声明Goods对象 然后给对象赋值相关属性值 再添加到goodsList
然后你说的根据id查询name price 循环判断就好
for(Goods g:goodsList){
if(g.getId()==3){
system.out.println("对应3的名称:"+g.getName);
system.out.println("对应3的价格:"+g.getPrice);

}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
树礼梨m
2012-08-01 · TA获得超过417个赞
知道小有建树答主
回答量:926
采纳率:75%
帮助的人:138万
展开全部
package domain;
public class Test {
public int id;
public String name;
public double price;
public String util;
public int num;

public Test() {
super();
}
public Test(int id, String name, double price, String util, int num) {
super();
this.id = id;
this.name = name;
this.price = price;
this.util = util;
this.num = num;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public String getUtil() {
return util;
}
public int getNum() {
return num;
}
public static void main(String[] args) {
Test test2=new Test(1,"lili",25,"元",10);
System.out.println("name="+test2.getName()+",price="+test2.getPrice()+",num="+test2.getNum()+",util="+test2.getUtil());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cheanyuan
2012-08-01
知道答主
回答量:34
采纳率:0%
帮助的人:15.3万
展开全部
首先纠正一下你的描述:"定义了一个商品集合",不能这么说,应该是一个实体类,里面包含了goodsId,name,price,util,num.
你想产寻id=1001的商品,你应该掌握数据库SQL + Java连接数据库部分代码.

SQL: select goodsId,name,price,util,num. from goods(表名) where id = 1001 ;表的字段与实体类对应起来.

怎么连接数据库.你去网上找,太多了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式