Avatar billede drinkit Praktikant
19. februar 2014 - 17:41 Der er 11 kommentarer og
1 løsning

While loop printer ikke første entity i List (og heller ik sidste, i nogle tilfælde?)

Hvad har jeg gjort forkert i dette while loop?

Den skal finde alle "Student" objekter der har ProfeciencyInJava lig med variables "p" jeg sætter først. Der er ingen fejl i koden, og det virker også til dels - men som titlen beskriver har jeg et problem.

int p = 3;
        int i = 0;
        System.out.println("Students with profeciency " + p + " in Java:");
        while (i < studentList.size()) {

            if (studentList.get(i).getProfeciencyInJava() == p) {
                System.out.println(studentList.get(i).getName());
            }
            i++;
        }
Avatar billede arne_v Ekspert
19. februar 2014 - 18:12 #1
==p skal nok vaere .equals(p)

hvor Student klassen har passende equals og hashcode metoder.
Avatar billede drinkit Praktikant
19. februar 2014 - 18:18 #2
Hehe, du er alle steder.
Forstår ikke helt hvad du mener. .equals metoden tjekker om to objekt-referencer er den samme, eller hvordan virker den?
Avatar billede drinkit Praktikant
19. februar 2014 - 18:20 #3
f (studentList.get(i).getProfeciencyInJava().equals(p)) {
Virker i hvert fald ikke. Selvom den først del, inden .equals burde give det samme som int p.
Avatar billede arne_v Ekspert
19. februar 2014 - 19:18 #4
ah - p er int - nej saa er det ==
Avatar billede arne_v Ekspert
19. februar 2014 - 19:20 #5
jeg ville bruge en for loekke og ikke en while loekke
Avatar billede arne_v Ekspert
19. februar 2014 - 19:21 #6
Men jeg forstaar ikke de manglende. En test paa en int kan ikke fejle. Er du sikker paa at de manglende faktisk matcher p?
Avatar billede drinkit Praktikant
19. februar 2014 - 19:21 #7
Prøver, vender tilbage når det er testet. Tak indtil da :)
Avatar billede drinkit Praktikant
19. februar 2014 - 20:14 #8
Jeg kan fortsat ikke få det til at virke.

Constructor for Student objekter: http://xup.dk/exp/3.jpg

du kan se den næst sidste int er det tal vi skal bruge her.

Her opretter jeg 6 objekter af Student klassen: http://xup.dk/exp/1.jpg

Og her ser du mit for loop: http://xup.dk/exp/2.jpg

Den udskriver kun følgende 2 navne:

"Students with profeciency 3 in Java:
Henk Marinus
Matthias Franz"

og ikke det sidste objekt, som er:
"Masstthias Franz"

som også har 3 i profeciencyInJava.
Avatar billede drinkit Praktikant
19. februar 2014 - 20:16 #9
hov, nej.. det virker fint.

Men den printer ikke den første identity (student1) når jeg søger efter entities med 6 i profeciencyInJava.

Hvordan er det nu med List - når den ikke printer første entity - Er det noget med "while (i < studentList.size()) {" studentList.size der skal ændres?
Avatar billede drinkit Praktikant
19. februar 2014 - 20:18 #10
Ah, arne. Tak for hjælpen. Jeg fandt min egen fejl - du har ret, det hele virker som det skal. Beklager!

Smid et svar, og tak for hjælpen i begge mine spørgsmål :)
Avatar billede drinkit Praktikant
20. februar 2014 - 03:06 #11
og smid lige et svar her også - så jeg kan lukke..!
Avatar billede arne_v Ekspert
20. februar 2014 - 03:18 #12
svar
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
Kategori
Kurser inden for grundlæggende programmering

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