Avatar billede jonas_j Nybegynder
27. februar 2006 - 19:27 Der er 7 kommentarer og
1 løsning

Søgning i et ArrayList, hvor man finder den største værdi??

Hej gutter,

Jeg har et lille problem med at lave den korrekt søgning i mit ArrayList. Det jeg gerne vil er, at finde den største værdi i mit ArrayList, forstået på den måde, at jeg i min ArrayList har en værdi "sallary" som er tilknyttet en Employee. I søgning skal metoden så finde den medarbejder med den største "sallary"? og retunere den. Her er lige noget kode, i kan forholde jer til :)

private ArrayList<Employee> employees;
private Employee bestPaidEmployee;

public Employee bestPaidEmployee()
    {       
        for(Employee s : employees) {
            // Her skal jeg så finde medarbejderen med den største sallery
        }

        return bestPaidEmployee;
    }

Håber i kan hjælpe lidt? Hvis i har spørgsmål eller mangler nogle data, skriv endelig!!
Avatar billede nielle Nybegynder
27. februar 2006 - 19:37 #1
Et bud:

private ArrayList<Employee> employees;
// Den skal ikke defineres udenfor - private Employee bestPaidEmployee;

public Employee bestPaidEmployee()
{
    Employee bestPaidEmployee = null;

    for (Employee s : employees) {
        if (bestPaidEmployee == null || s.sallery > bestPaidEmployee.sallery)
            bestPaidEmployee = s;
        }
    }

    return bestPaidEmployee;
}


PS: sallery staves som "salery".
Avatar billede nielle Nybegynder
27. februar 2006 - 19:38 #2
Det er nok ikke nogen god ide at bruge samme navn for metode og variablen. :^)
Avatar billede jonas_j Nybegynder
27. februar 2006 - 19:42 #3
Det spiller max :) tak for hjælpen. Laver du et svar?
Avatar billede jonas_j Nybegynder
27. februar 2006 - 19:43 #4
ved godt der er nogle ting som ikke helt er "god kutyme". Men det dur, hehe
Avatar billede nielle Nybegynder
27. februar 2006 - 19:44 #5
Svar :^)
Avatar billede arne_v Ekspert
27. februar 2006 - 19:48 #6
jeg troede at det var "salary"
Avatar billede nielle Nybegynder
27. februar 2006 - 19:56 #7
Det er det jo også :^)
Avatar billede arne_v Ekspert
28. februar 2006 - 04:41 #8
der er ikke meget at sige til koden - den er som den skal vaere
(jeg er saa gammeldags at jeg foretraekker den gammeldags for loekke men ...)

men jeg kan ikke dy mig for at vise hvordan man skal goere det hvis man skal
genere dem der skal laese og forstaa koden mest muligt:

    public Employee bestPaidEmployee()
    {
        return Collections.max(employees, new Comparator<Employee>() {
            public int compare(Employee o1, Employee o2) {
                return o1.getSalary() - o2.getSalary();
            }
        } );
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester