Updater objekt i Arraylist hjælp

Tags:    java

Godaften / Godnat må jeg nok hellere skrive. Har et problem som jeg håber i kunne hjælpe mig med.

Har en arrayliste som består af objekter af typen (Operatoer)
Disse objekter indeholder bland andet:

Id, name, initials, cpr, password.

Den klasse hvor min arrayliste er oprettet har metoden:

public void updateOperatoer(OperatoerDTO opr) {

Den skal altså bruge et opr objekt som parameter til at udføre denne metode.

Jeg har gennem den tidligere metode, som kalder updateOperatoer metoden, smidt en parameter med (altså en opr objekt), som består af id, navn, ini, cpr og password som administratoren selv har indtastet.

Nu vil jeg gerne opdatere den plads i arraylisten som har samme id som det jeg har indtastet, da jeg lavede det nye objekt opr.

Det vil sige at hvis der i Arraylisten fx står:

Operatoer.add(new OperatoerDTO(11, "Anders Hansen", "AH", "1903901245", "H?d-1T"));

og administratoren gerne vil opdatere en operatør og skriver

id = 11
name = Jesper Grønkjær
ini = JG
cpr = 1234567890
password oy5d!r

og jeg smider disse værdier ind i opr ojektet.
Hvordan får jeg det så skrevet over, netop det der står på pladsen med oprId 11.

Har prøvet mig lidt frem, men det virker ikke rigtigt. Skal lige siges der ikke må bruges nogen System.out.print, i denne klasse, så kan ikke bare bede om oprId som jeg så kan tjekke arraylisten igennem med.

http://pastebin.com/48M2sgda


håber en har et svar.. ;)





3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 10 karma
Sorter efter stemmer Sorter efter dato
Husk at hoppe ud af loopet når du har fundet den rigtige. Hvis du har 1000 indgange i din arraylist og det tilfældigvis er den første du skal rette, så er der ingen grund til at loope igennem resten.



I stedet for at iterere sekventielt over listen, vil jeg foreslå, at du opretter en hashtabel og bruger ID'et som nøglen til at tilgå værdien (objektet).



behøver ikke .. har fundet min fejl, og ja, troede ikke man kunne skrive

if (Operatoer.get(i).oprId == (opr.oprId)) {
Operatoer.set(i, opr);



t