[英]Java, how to add one object to an ArrayList and decrease one from another
I got my exam tomorrow and I have tried to make code that is supposed to be like a store. 明天我考试了,我试图制作应该像商店的代码。
I'm satisfied with my code, but I'm missing something. 我对我的代码感到满意,但是我缺少了一些东西。 I have made ArrayList with the name lagerplass
and handlekurv
. 我已经用名称为lagerplass
和handlekurv
ArrayList做了。 The ArrayList lagerplass
is supposed to be like a storage for items in a store, and the ArrayList handlekurv
is supposed to be the items customers is wanting to buy. ArrayList lagerplass
应该像商店中存储项目的存储,而ArrayList handlekurv
应该是客户想要购买的项目。 And this is the problem, I want to find a good way so that when people take items from the store and it goes into handlekurv
it will decrease the items in lagerplass
, also that u cannot take items into handlekurv
without items being in lagerplass
would love if someone could help me do this with either changing some methods or adding some! 这就是问题所在,我想找到一种好方法,以便当人们从商店中拿取物品并进入handlekurv
,它将减少lagerplass
的物品,而且如果没有放置在lagerplass
物品, lagerplass
将无法将物品放入handlekurv
中如果有人可以通过更改某些方法或添加一些方法来帮助我做到这一点!
Here is the code for Varer: 这是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();
}
} }
Here is the code for Handlekurv: 这是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");
}
}
}
} }
And here is the code for Butikk: 这是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);
}
} }
I think this is what you want: 我认为这是您想要的:
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;
}
...
}
If you are searching for products mainly through their name, then I would use a HashMap<String, Varer>
with name as key to store the products. 如果您主要通过产品名称搜索产品,那么我将使用HashMap<String, Varer>
(名称作为关键字)来存储产品。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.