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