09. november 2003 - 02:42Der er
20 kommentarer og 1 løsning
oprettelse af dynamisk ArrayList.
Jeg har brug for at lave en metode, hvor java selv opretter et ArrayList for hver gang jeg ønsker det. Dvs. første gang jeg ønskede den skulle oprette et ArrayList, ville den lave en ArrayList, som hed
ArrayList 1 = new ArrayList
Hvis jeg så valgte at køre metoden igen, skulle den oprette et nyt ArrayList ved navn 2 osv.
Disse ArrayList skulle gerne være dynamiske, idet man skal kunne simpelt oprette et nyt, slet en eksisterende og udskrive den. Udover det skal man så kunne tilføje værdier i de forskellige index, ligeledes slette og udskrive.
Lyder lidt meget, har nogenlunde en ide om hvordan det skal laves, har dog lidt problemer med at skrive metoden, hvori java opretter et ArrayList og giver den et navn hhv. 1,2,3 osv.
hmm jeg kan ikke rigtigt forstå hvad fidusen skulle være ved at lave det på den måde? Hvis du opretter ArrayList objekterne inde i selve metoden, sådan som du beskriver, eksisterer de jo kun så længe den metode bliver udført og bliver automatisk slettet når metoden returnerer. I øvrigt skal variabelnavne, metoder og klasser starte med et bogstav, og derfor kan man ikke kalde en variabel for 1. Ellers må du lige uddybe problemstillingen :)
har udtrykt mig forkert, er ik helt skarp til alle java udtrykkene. Det jeg skal lave er et faktuering program. Jeg har nogle varer, som ligger i et ArrayList for sig selv, og nogle kunder, som også ligger i et ArrayList. Hvis jeg så en kunde skal købe nogle varer, skal der oprettes en fakture over de varer, han eller hun køber.
Denne fakture regnede med at lave som et ArrayList,hvor der står hvad hvad kunden har købt af varer i hvert index. Problemet ligger i, at så snart jeg gik i gang med fakture nr. 2, ville den overskrive fakture 1, i det ligger i ArrayList. Derfor er nødt til at lave det om, således at hvert fakture står for sig selv dvs. et ArrayList for hver fakture. Det er mit problem.
Er lige startet i skole, og har ikke lært om noget med HashMap endnu, så vil helst ikke bevæge mig derud.
public class FakturaTest { public static void main(String[] args) { List kunder = new ArrayList(); List varer = new ArrayList(); List fakturaer = new ArrayList(); Kunde hansen = new Kunde("Hansen"); Kunde jensen = new Kunde("Jensen"); kunder.add(hansen); kunder.add(jensen); Vare sodavand = new Vare("Sodavand"); Vare chokolade = new Vare("Chokolade"); varer.add(sodavand); varer.add(chokolade); fakturaer.add(new Faktura(hansen, sodavand)); fakturaer.add(new Faktura(hansen, chokolade)); fakturaer.add(new Faktura(jensen, sodavand)); System.out.println(kunder); System.out.println(varer); System.out.println(fakturaer); } }
class Kunde { private String navn; public Kunde(String navn) { this.navn = navn; } public String getNavn() { return navn; } public void setNavn(String navn) { this.navn = navn; } public String toString() { return navn; } }
class Vare { private String navn; public Vare(String navn) { this.navn = navn; } public String getNavn() { return navn; } public void setNavn(String navn) { this.navn = navn; } public String toString() { return navn; } }
class Faktura { private Kunde kunde; private Vare vare; public Faktura(Kunde kunde, Vare vare) { this.kunde = kunde; this.vare = vare; } public Kunde getKunde() { return kunde; } public Vare getVare() { return vare; } public void setKune(Kunde kunde) { this.kunde = kunde; } public void setV(Vare vare) { this.vare = vare; } public String toString() { return kunde + ":" + vare; } }
public class FakturaTest { public static void main(String[] args) { KundeList kunder = new KundeList(); VareList varer = new VareList(); List fakturaer = new ArrayList(); kunder.add(new Kunde("Hansen", "Pærevej 1")); kunder.add(new Kunde("Jensen", "Æblevej 2")); varer.add(new Vare("Sodavand", 5)); varer.add(new Vare("Chokolade", 25)); fakturaer.add(new Faktura(kunder.find("Hansen"), varer.find("Sodavand"), 30)); fakturaer.add(new Faktura(kunder.find("Hansen"), varer.find("Chokolade"), 10)); fakturaer.add(new Faktura(kunder.find("Jensen"), varer.find("Sodavand"), 60)); System.out.println(kunder); System.out.println(varer); System.out.println(fakturaer); } }
class KundeList { private List list = new ArrayList(); public void add(Kunde kunde) { list.add(kunde); } public Kunde get(int ix) { return (Kunde)list.get(ix); } public Kunde find(String navn) { for(int i = 0; i < list.size(); i++) { Kunde kunde = (Kunde)list.get(i); if(kunde.getNavn().equals(navn)) { return kunde; } } return null; } public String toString() { return list.toString(); } }
class VareList { private List list = new ArrayList(); public void add(Vare vare) { list.add(vare); } public Vare get(int ix) { return (Vare)list.get(ix); } public Vare find(String navn) { for(int i = 0; i < list.size(); i++) { Vare vare = (Vare)list.get(i); if(vare.getNavn().equals(navn)) { return vare; } } return null; } public String toString() { return list.toString(); } }
class Kunde { private String navn; private String adresse; public Kunde(String navn, String adresse) { this.navn = navn; this.adresse = adresse; } public String getNavn() { return navn; } public String getAdresse() { return adresse; } public void setNavn(String navn) { this.navn = navn; } public void setAdresse(String adresse) { this.adresse = adresse; } public String toString() { return navn + ":" + adresse; } }
class Vare { private String navn; private int pris; public Vare(String navn, int pris) { this.navn = navn; this.pris = pris; } public String getNavn() { return navn; } public int getPris() { return pris; } public void setNavn(String navn) { this.navn = navn; } public void setPris(int pris) { this.pris = pris; } public String toString() { return navn + ":" + pris; } }
class Faktura { private Kunde kunde; private Vare vare; private int antal; public Faktura(Kunde kunde, Vare vare, int antal) { this.kunde = kunde; this.vare = vare; this.antal = antal; } public Kunde getKunde() { return kunde; } public Vare getVare() { return vare; } public int getAntal() { return antal; } public void setKunde(Kunde kunde) { this.kunde = kunde; } public void setVare(Vare vare) { this.vare = vare; } public void setAntal(int antal) { this.antal = antal; } public String toString() { return kunde + ":" + vare + ":" + antal; } }
det jeg umiddelbart kan se er, at du har lavet ArrayListen således, at der i index 0, står kundeinformation, og i index 1,2,3 osv. de købte varer, er det sandt?
et lille spørgsmål mere, jeg har gjort nogenlunde som du har beskrevet og det virker fint, men i index 0, hvor kundeinformationen skal stå, har jeg gjort således at man søger efter personen udfra tlfnr. dvs. en søgefunktion, hvordan får jeg søgefunktionen svar sat ind i index 0.
System.out.print("Indtast TLFnr: ");
num=Keyboard.readString();
System.out.println();
for (int i=0; i < Kunde.privat.size(); i++) { Privatkunde fund = (Privatkunde)privat.get(i);
svar = fund.getPtlf().indexOf(num);
if (svar>=0) { System.out.println("Privatkunde: "+i+"\n"+Kunde.privat.get(i)+"\n"); //hvordan får jeg sat dette ind i index 0? }
ja, det ved jeg godt, men i en del af min kode, udprinter den kundens information for de passende "løsninger". Dette slettes jo så snart for løkken afsluttes. hvordan bibeholder jeg svaret? jeg kan jo ikke ligefrem skrive
ok, glem alt sammen, et meget simpelt spørgsmål, hvordan laver jeg objektet i ifløkken om til en String dvs. Kunde.privat.get(i) om til en string? Så skal jeg nok acceptere dit svar.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.