|
| 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.
| |
|
|