尝试复制数组或添加它

时间:2013-12-22 00:07:36

标签: java arrays

我的程序应该打印关闭文件时已完成的所有操作。问题是除了作为数组的项目列表之外,它打印出我想要的所有内容。所以,我想我的问题在于协调数组。这是我的代码的一部分

public Item[] getItems() {
    return itemslist;
}

public void addItems(Item[] itm) {
    for (int i = 0; i < itm.length; i++)
        if (itm[i] != null) 
            itemslist[i] = itm[i];
}

当数组被确认时,该数组会被放入数组中,以便我将数组o2打印在一个文件中

if (jop == JOptionPane.OK_OPTION) {
    o2[orders] = new Order(o1.getId());
    o2[orders].setId(o1.getId());
    o2[orders].setTotalPrice(o1.getTotalPrice());
    o2[orders].setBarista(o1.getBarista());
    o2[orders].addItems(o1.getItems());
    orders++;

尝试打印失败的那些。

               outFile=new File("Orderslist.txt");
               out=new FileOutputStream(outFile);
               ob=new PrintWriter(out);

               for(int i=0;i<orders;i++){
              itms=new Item[o2[i].getItems().length];
              itms=o2[i].getItems();

                  if(o2[i]!=null){ 


                  if(o2[i].getCount()<=4){
                     ob.println(o2[i].toString()+"\n--------------\n");

                            for(int j=0;i<itms.length;j++){
                            System.out.print(itms[j].toString());}

                            ob.println("--------------\n"+"\nTotal: "+o2[i].getTotalPrice()+"\n\n\n");}

                  else if(o2[i].getCount()>4){

                             ob.println(o2[i].toString()+"\n--------------\n");

                            for(int j=0;i<itms.length;j++){
o2[i].getItems()[j].toString();}

                            ob.println("--------------\n"+"\nTotal: "+o2[i].getTotalPrice());


                            ob.println("\n\nDiscount 20%\n\n--------------\nTotal price#: "+(o2[i].getTotalPrice()-(o2[i].getTotalPrice()*0.2))+"\n\n\n");
               }
               }
            }


           ob.close();

1 个答案:

答案 0 :(得分:0)

for (int j = 0; i < itms.length; j++)     
    if( itms[i]!=null)
         o2[i].getItems()[j].toString();

这件作品没有做任何事情,因为它只返回一个字符串 - 并没有做任何事情(既不打印也不指定某些东西)。因此,您只需浏览整个数组,并对其元素不执行任何操作。因此,如果o2[i].getCount() > 4您将不会打印它。

另请注意,当您的第一个if语句为:if (o2[i].getCount() <= 4)时,在您的else语句中,您不需要检查if (o2[i].getCount() > 4),因为如果不是,则会没有进入其他区块。