Java中的对象,如何比较参数?

时间:2016-06-02 20:21:16

标签: java object collections

有人能帮帮我吗?我有一个问题,我有一些与客户,卖家和产品的集合。我已经制作了一个GUI,我可以输入卖家,客户和产品数据,例如:name,addres,ID和其他东西。然后我们可以使用以前的所有数据构建销售。

问题如下,我想做一种报告(可能只是印刷销售),其中我可以看到每个卖家的销售数量。

我一直在试用这段代码:

Object name = jcbSeller.getSelectedItem();
    String nameSeller = (String) name;
    System.out.println(nameSeller);

    Sale selectedSale = null;
    Seller selectedSeller = null;
    for(Sale sale : Collection.getSales())
    {
        selectedSale = sale;
        for(Seller seller : Collection.getSellers())
        {
            selectedSeller = seller;
            String name2 = selectedSeller.getName();
            if(nameSeller.equals(name2))
            {
                jtxaSale.setText(selectedSale.toString());
            }
            else
            {
                System.out.println("There is an error");
            }
        }
    }

我将每个卖家的名字放在JComboBox中,然后我会检查是否有销售。然后我将JComboBox的名称与卖家名单中包含的卖家名称进行比较。最后我在控制台打印销售。但它只打印了我做过的第一次销售,如果我更换卖家,它会打印相同的销售。

我不知道我是否解释了这个问题,我是这方面的新手。希望您能够帮助我。如果你想要更多的代码我会把它。感谢

1 个答案:

答案 0 :(得分:0)

我怀疑您的问题是由于每个卖家的每次销售都在循环,而没有两者之间的参考。您最终会覆盖为每次销售重复设置的价值

...
if(nameSeller.equals(name2))
{
    jtxaSale.setText(selectedSale.toString());
    System.out.println("Adding selectedSale ("+ selectedSale.toString() + ") for selectedSeller ("+selectedSeller.toString()+")");
}
else
{
    System.out.println("There is an error");
}

尝试此操作,看看打印是否符合您的要求。