/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hente netop oprettet objekt i ArrayList?
Fra : Ukendt


Dato : 02-11-04 19:41

Er der en måde man nemt kan hente et objekt man lige har oprettet i en
ArrayList?

Jeg har en arrayliste med nogle studerende der oprettes løbende. Koden ser
sådan ud:

studerendeliste.add(new Studerende("Lars", "10"));
studerende = (Studerende) studerendeliste.get(9);
studerende.setOpgStatus(true, true, 0);

studerendeliste.add(new Studerende("Anne", "11"));
studerende = (Studerende) studerendeliste.get(10);
studerende.setOpgStatus(true, false, 0);

(...)

Problemet er, at hvis en studerende slettes fra listen rykker index sig, og
dermed kaldes setOpgStatus metoden for den forkerte person. Det kunne løses
hvis jeg kunne hente den studerende der netop er blevet oprettet i listen
uden at anvende index-nummeret. Er det muligt?



 
 
Lars Dam (02-11-2004)
Kommentar
Fra : Lars Dam


Dato : 02-11-04 19:53

On Tue, 2 Nov 2004 19:41:21 +0100
"<-= KG =->" <NOSPAM> wrote:

> Er der en måde man nemt kan hente et objekt man lige har oprettet i en
> ArrayList?
>
> Jeg har en arrayliste med nogle studerende der oprettes løbende. Koden ser
> sådan ud:
>
> studerendeliste.add(new Studerende("Lars", "10"));
> studerende = (Studerende) studerendeliste.get(9);
> studerende.setOpgStatus(true, true, 0);
>
> studerendeliste.add(new Studerende("Anne", "11"));
> studerende = (Studerende) studerendeliste.get(10);
> studerende.setOpgStatus(true, false, 0);
>
> (...)
> Problemet er, at hvis en studerende slettes fra listen rykker index sig, og
> dermed kaldes setOpgStatus metoden for den forkerte person. Det kunne løses
> hvis jeg kunne hente den studerende der netop er blevet oprettet i listen
> uden at anvende index-nummeret. Er det muligt?

Ja. Omtænk dit design; prøv evt med:

Studerende s = new Studerende("Lars","13 med pil op");
s.setOpgStatus(true,true,0);
studerendeliste.add(s);

Alternativt brug et map, hvori du kender nøglen til den enkelte studerende, men
det kommer helt an på dine krav, så det er lidt svært at give dig gode råd, da
disse er ukendte.

vh. Lars Dam

Mads Bahrt (02-11-2004)
Kommentar
Fra : Mads Bahrt


Dato : 02-11-04 20:01

<-= KG =-> wrote:
> Er der en måde man nemt kan hente et objekt man lige har oprettet i en
> ArrayList?
>
> Jeg har en arrayliste med nogle studerende der oprettes løbende. Koden ser
> sådan ud:
>
> studerendeliste.add(new Studerende("Lars", "10"));
> studerende = (Studerende) studerendeliste.get(9);
> studerende.setOpgStatus(true, true, 0);
>
> studerendeliste.add(new Studerende("Anne", "11"));
> studerende = (Studerende) studerendeliste.get(10);
> studerende.setOpgStatus(true, false, 0);
>
> (...)
>
> Problemet er, at hvis en studerende slettes fra listen rykker index sig, og
> dermed kaldes setOpgStatus metoden for den forkerte person. Det kunne løses
> hvis jeg kunne hente den studerende der netop er blevet oprettet i listen
> uden at anvende index-nummeret. Er det muligt?

Hvorfor vil du gerne hente objektet ud af ArrayListen når du lige har
brugt det? I stedet kan du bare lave

studerende = new Studerende("Lars", "10");
studerendeliste.add(studerende);
studerende.setOpgStatus(true, true, 0);

studerende = new Studerende("Anne", "11");
studerendeliste.add(studerende);
studerende.setOpgStatus(true, false, 0);

Jeg tror dog ikke du skal være så bange for at indexet rykker sig, med
mindre dit program er multitrådet og de andre tråde piller ved arraylisten.

MVH
Mads

Rasmus Olesen (02-11-2004)
Kommentar
Fra : Rasmus Olesen


Dato : 02-11-04 23:08


"<-= KG =->" <NOSPAM> skrev i en meddelelse
news:4187d4cf$0$172$edfadb0f@dread11.news.tele.dk...
> Er der en måde man nemt kan hente et objekt man lige har oprettet i en
> ArrayList?
>
> Jeg har en arrayliste med nogle studerende der oprettes løbende. Koden ser
> sådan ud:
>
> studerendeliste.add(new Studerende("Lars", "10"));
> studerende = (Studerende) studerendeliste.get(9);
> studerende.setOpgStatus(true, true, 0);
>
> studerendeliste.add(new Studerende("Anne", "11"));
> studerende = (Studerende) studerendeliste.get(10);
> studerende.setOpgStatus(true, false, 0);
>
> (...)
>
> Problemet er, at hvis en studerende slettes fra listen rykker index sig,
> og
> dermed kaldes setOpgStatus metoden for den forkerte person. Det kunne
> løses
> hvis jeg kunne hente den studerende der netop er blevet oprettet i listen
> uden at anvende index-nummeret. Er det muligt?
>
>
hvorfor bruger du ikke bare et Array istedet for arraylist? du ved jo hvor
mange studerende der er og du skal ikke selv kunne tilføje flere!
eller måske hashmap, da du skal kunne identificere eleverne gennem
Cprnummer.

ps. jeg har den samme opgave for.



Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408170
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste