Java,如何将一个对象添加到ArrayList,并从另一个对象减少一个对象

Java,如何将一个对象添加到ArrayList,并从另一个对象减少一个对象,java,Java,我明天就要考试了,我试着去做一些像商店一样的代码 我对我的代码很满意,但我遗漏了一些东西。我制作了名为lagerclass和handlekurv的ArrayList。ArrayListLagerClass被认为是商店中物品的存储库,ArrayListhandlekurv被认为是客户想要购买的物品。这就是问题所在,我想找到一个好方法,这样当人们从商店拿东西时,它进入handlekurv时,它会减少lagerclass中的物品,另外,如果你不能将物品放入handlekurv而物品不在lagercla

我明天就要考试了,我试着去做一些像商店一样的代码

我对我的代码很满意,但我遗漏了一些东西。我制作了名为
lagerclass
handlekurv
的ArrayList。ArrayList
LagerClass
被认为是商店中物品的存储库,ArrayList
handlekurv
被认为是客户想要购买的物品。这就是问题所在,我想找到一个好方法,这样当人们从商店拿东西时,它进入
handlekurv
时,它会减少
lagerclass
中的物品,另外,如果你不能将物品放入
handlekurv
而物品不在
lagerclass
中,如果有人能帮我改变一些方法或添加一些方法,你会很高兴的

以下是Varer的代码:

public class Varer
{
// Representerer merke og pris til en vare.
private String vare; // Representerer selve varen
private String merke; // Representerer merket som er satt fast til Razor
private int pris; // Representerer prisen til varen
private String varenavn; // Representerer varenavnet altså : Naga, Mamba, Kraken osv.

/**
 * Constructor for klassen Varer
 */
public Varer(int pris, String varenavn, String vare)
{
    merke = "Razor";
    this.pris = pris;
    this.varenavn = varenavn;
    this.vare = vare;

}

/**
 * Returner merket
 * @return merke
 */
public String getMerke()
{
    return merke;
}
/**
 * Returnerer pris
 * @return pris
 */
public int getPris() 
{
    return pris;
}
/**
 * Returnerer varenavn altså: Kraken, Tiamat, Naga osv.
 * @return varenavn
 */
public String getVarenavn()
{
    return varenavn;
}
/**
 * Returner selve varen
 * @return vare
 */
public String getVare()
{
    return vare;
}
/**
 * Returnerer alle detailjene til varen
 * @return vare, merke, varenavn, pris
 */
public String getDetails()
{
    return vare + ", " + merke + " " + varenavn + ", " + pris + " kr.";
}
/**
 * Returnerer alle detailjene til varen
 */
public void printDetails()
{
    System.out.println(vare + ", " + merke + " " + varenavn + ", " + pris + " kr.");
    System.out.println();
}
}

以下是Handlekurv的代码:

public class Handlekurv
{
//Opretter en liste med variablet Varer og objektet handlekurv
public ArrayList<Varer> handlekurv;

/**
 * Constructor for objects of class Handlekurv
 */
public Handlekurv()
{
    // Lager en ArrayList med variabelen varer
    handlekurv = new ArrayList<Varer>();
}

/**
 * Metode for å legge til varer i Handlekurven!
 * @see Varer
 */
public void addVarer(Varer vare)
{
    handlekurv.add(vare);
}
/**
 * Denne metoden printer ut hva du har i handlekurven
 * @see Varer
 */
public void printHandlekurv()
{
    for (Varer a : handlekurv)
    {
        System.out.println (a.getDetails());
        System.out.println();
    }
}
/**
 * Fjerner alt i handlekurven
 *@see Varer
 */
public void fjernHeleHandlekurv()
{
    handlekurv.clear();
}
/**
 * Returnerer størelsen av listen
 */
public int handlekurvSize()
{
    return handlekurv.size();
}
/**
 * Fjerner spesifikke varer i handlekurven
 * @see Varer
 */
public void fjernEnkeltHandlekurv(String fjernHandlekurv)
{
    Iterator<Varer> it = handlekurv.iterator();
    while (it.hasNext()) {
        Varer t = it.next();
        String varenavn = t.getVarenavn();
        if (varenavn.equals(fjernHandlekurv)) {
            it.remove();
            System.out.println("Du har fjernet: " + fjernHandlekurv+" " + "fra handlekurven din");
        }
    }
}
公共类Handlekurv
{
//操作人员在操作过程中应注意以下事项:
公共ArrayList handlekurv;
/**
*Handlekurv类对象的构造函数
*/
公营部门
{
//Lager en ArrayList med variabelen Varre
handlekurv=newarraylist();
}
/**
*我要为我的兄弟们祈祷,直到我能处理好一切!
*@见瓦勒
*/
公共无效地址(Varer vare)
{
handlekurv.add(vare);
}
/**
*丹尼·梅托登印刷厂
*@见瓦勒
*/
公共无效printHandlekurv()
{
对于(Varer a:handlekurv)
{
System.out.println(a.getDetails());
System.out.println();
}
}
/**
*Fjerner alt i handlekurven
*@见瓦勒
*/
公共无效fjernHeleHandlekurv()
{
handlekurv.clear();
}
/**
*海归圣雷森酒店
*/
public int handlekurvSize()
{
返回handlekurv.size();
}
/**
*Fjerner spesifikke Varre i handlekurven
*@见瓦勒
*/
公共无效fjernEnkeltHandlekurv(字符串fjernHandlekurv)
{
迭代器it=handlekurv.Iterator();
while(it.hasNext()){
Varer t=it.next();
字符串varenavn=t.getVarenavn();
if(varenavn.equals(fjernHandlekurv)){
it.remove();
System.out.println(“Du har fjernet:+fjernHandlekurv+”+“fra handlekurven din”);
}
}
}
}

下面是Butikk的代码:

public class Butikk
{
// Lager en ArrayList med variablen Varer
public ArrayList<Varer> lagerplass;
Handlekurv hk = new Handlekurv();

/**
 * Constructor for klassen Butikk, oppretter ny ArrayList av variablen Varer
 */
public Butikk()
{

    lagerplass = new ArrayList<Varer>();
}

/**
 * Opretter et nye headset og legger denne i lagerplass listen
 * @parm lyd, vare, pris, varenavn
 */
public void nyHeadset(String lyd, String vare, int pris, String varenavn )
{

    Headset nyHeadset = new Headset ( lyd, vare, pris, varenavn);
    lagerplass.add(nyHeadset);

}
/**
 * Opretter et nye mus og legger denne i lagerplass listen
 * @parm vare, pris, varenavn, dpi
 */
public void nyMus(String vare, int pris, String varenavn, int dpi)
{
    Mus nyMus = new Mus(vare, pris, varenavn, dpi);
    lagerplass.add(nyMus);
}
/**
 * Printer ut alle varene i lagerplass listen
 *@see Varer klassen og metoden printDetails
 */
public void printLagerplass()
{
    for (Varer vare : lagerplass)
    {
        vare.printDetails();
    }
}

/**
 * Fjerner alt i lagerplass listen
 */
public void fjernHeleLagerplass()
{
    lagerplass.clear();
}
/**
 * Legger til en vare fra lagerplass til handlekurv
 * @see klassen Varer og metoden getVarenavn
 * @see klassen Handlekurv og metoden addVarer
 */
public void leggTilHandlekurv(String varenavn)
{
    for (Varer a : lagerplass) 
    {
        if (a.getVarenavn().equals(varenavn))
        {
            hk.addVarer(a);
        }
    }
}
/**
 * Printer ut alt i handlekurv listen
 */
public void printHeleHandlekurven()
{
    hk.printHandlekurv();
}
/**
 * Fjerner alt i handlekurv listen
 */
public void FjernHeleHandlekurven()
{
    hk.fjernHeleHandlekurv();
}
/**
 * En metode for å fjerne en enkelt vare fra lagerplass listen.
 */
public void FjernEnkeltVarer(String fjernVarenavn)
{
    Iterator<Varer> it = lagerplass.iterator();
    while (it.hasNext())
    {
        Varer vare = it.next();
        String varenavn = vare.getVarenavn();
        if (varenavn.equals(fjernVarenavn))
        {
            it.remove();
        }
    }
}

 public void fjernEnkeltHandlekurv(String fjernHandlekurv)
{
    hk.fjernEnkeltHandlekurv(fjernHandlekurv);

}
public类Butikk
{
//Lager en ArrayList med variablen Varer
公共ArrayList LagerClass;
Handlekurv hk=新Handlekurv();
/**
*klassen Butikk、oppretter ny ArrayList av variablen Valer的构造函数
*/
公共图书馆
{
LagerClass=newArrayList();
}
/**
*Opreter et nye耳机og legger denne i lagerplass听着
*@parm-lyd,vare,pris,varenavn
*/
public-void-nyHeadset(字符串lyd、字符串vare、整数pris、字符串varenavn)
{
耳机NYHEADET=新耳机(lyd、vare、pris、varenavn);
LagerClass.add(nyHeadset);
}
/**
*Opreter and nye mus og legger denne i lagerplass听着
*@parm vare,pris,varenavn,dpi
*/
public void nyMus(字符串变量、int pris、字符串变量、int dpi)
{
睡鼠=新的睡鼠(变、pris、变、dpi);
lagerplass.add(nyMus);
}
/**
*打印机,我是瓦琳,听着
*@详见瓦勒·克拉森·奥格·梅托登印刷品
*/
公共无效PrintLagerClass()
{
for(Varer-vare:lagerclass)
{
变量printDetails();
}
}
/**
*Fjerner alt i LagerClass听我说
*/
公共无效fjernHeleLagerplass()
{
lagerclass.clear();
}
/**
*Legger til en vare fra lagerplass til handlekurv
*@see klassen Varer og metoden getVarenavn
*@see klassen Handlekurv og metoden addVarer
*/
公共空间:TilHandlekurv(字符串varenavn)
{
for(varera:lagerclass)
{
如果(a.getVarenavn().equals(varenavn))
{
hk.addVarer(a),;
}
}
}
/**
*打印机ut alt i handlekurv听着
*/
public void printHeleHandlekurven()
{
hk.printHandlekurv();
}
/**
*Fjerner alt i handlekurv听着
*/
公共无效FjernHeleHandlekurven()
{
hk.fjernHeleHandlekurv();
}
/**
*听我说,我是一个小女孩。
*/
公共无效FjernEnkeltVarer(字符串fjernVarenavn)
{
Iterator it=lagerClass.Iterator();
while(it.hasNext())
{
Varer vare=it.next();
字符串varenavn=vare.getVarenavn();
if(varenavn.equals(fjernVarenavn))
{
it.remove();
}
}
}
公共无效fjernEnkeltHandlekurv(字符串fjernHandlekurv)
{
hk.fjernEnkeltHandlekurv(fjernHandlekurv);;
}

}我想这就是你想要的:

public class Butikk {

  ...

  /**
   * ...
   *
   * @return found
   */
  public boolean leggTilHandlekurv(String varenavn) {
     for (Varer a : lagerplass) {
        if (a.getVarenavn().equals(varenavn)) {
            lagerplass.remove(a);
            hk.addVarer(a);
            return true;
        }
     }
     return false;
  }

  ...

}

如果您主要通过名称搜索产品,那么我会使用名称作为键的
HashMap
来存储产品。

您尝试了什么?为什么不起作用?@Ryan我试过使用这个方法:public void leggTilHandlekurv(String varenavn){Iterator Iterator=lagerclass.Iterator();while(Iterator.hasNext()){Varer a=Iterator.next();if(a.getVarenavn().equals(varenavn)){Iterator.remove();hk.addVarer(a);}但这不起作用,当我尝试使用printHeleHandlekurven方法和PrintLagerClass方法时,我收到一条错误消息。使用此方法时,我收到一个bolean错误:您在此处使用的运算符不能用于您使用它的值类型。您可能使用了错误的类型,或者使用了错误的运算符。啊…:/@KennethRønning只有在按索引删除时,它才起作用。更正。这个有效!如果我不挑剔,我只是添加了一个lagerClass.size方法,那么是否可以使用else方法返回该项不存在?如果你没有找到它,你可以用它来处理:
如果(!legTilHandlekurv(“product”){System.out.println(“product not found”);}否则{//procedure normal}
我希望它在屏幕上显示一些东西,而不是真的或假的,使用System.out.println(“你成功了”)