Avatar billede joanna Nybegynder
12. december 2003 - 12:04 Der er 6 kommentarer og
1 løsning

søgning i Vector

Jeg skal have søgt en Vector opgaver igennem for at finde den opgave, som jeg søger. Jeg har lavet to udgaver af metoden i klassen OpgaveContainer, men i dem begge meldes der at jeg skal oprette metoden equals i klassen Opgave. Hvorfor virker ingen af de to metoder?

/*
* Method findOpgave()
* @param Vector opgaver og opgave
* @return opgave, hvis denne findes i Vectoren         
* ellers returneres null
*/
   
       
   
    public Opgave findOpgave(Opgave opgave)
    {
        int i = 0;
        Iterator it = opgaver.iterator();
        while(it.hasNext())
        {
            Opgave o = (Opgave)it.next();
            if(opgave.equals(i))
            {
                return opgave;
            }
                else
                {
                return null;
                }
        }   
    }


    public Opgave findOpgave(Vector opgaver, Opgave    opgave)
    {
        boolean found = false;
        int i = 0;
        while (!found && i<opgaver.size())
        {
            Opgave o = ((Opgave)  opgaver.elementAt(i));
            if(o.equals(i)) found = true;
            {
                else i++;   
            }
            return opgave;
        }
        else return null;
    }
Avatar billede arne_v Ekspert
12. december 2003 - 12:13 #1
Brug:

opgave.equals(o)

eller:

o.equals(opgave)
Avatar billede idle Nybegynder
12. december 2003 - 12:14 #2
med o.equals(i) spørger du om et Opgave objekt equals en simpel int - det forstår den som udgangspunkt ikke... Du vil sandsynligvis meget hellere sammenligne den med et andet Opgave objekt
Avatar billede idle Nybegynder
12. december 2003 - 12:14 #3
Så langsom er jeg :-)
Avatar billede arne_v Ekspert
12. december 2003 - 12:14 #4
public Opgave findOpgave(Opgave opgave) {
        Iterator it = opgaver.iterator();
        while(it.hasNext()) {
            Opgave o = (Opgave)it.next();
            if(opgave.equals(o)) {
                return opgave;
            }
        }
        return null;
    }
Avatar billede joanna Nybegynder
12. december 2003 - 12:18 #5
Tusind tak for hjælpen :-)
Avatar billede joanna Nybegynder
12. december 2003 - 12:26 #6
Endnu engang tak for den hurtige besvarelse. Det er enkelt og effektivt. Skønt:-)
Avatar billede arne_v Ekspert
12. december 2003 - 12:36 #7
Der er iøvrigt et par interessante metoder i Vector !

opgaver.contains(o) vil returnere true eller false alt efter om o er der

opgaver.indexOf(o) vil returnere index hvor o er (-1 hvsi den ikke er der)
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