Avatar billede svuppenator Nybegynder
25. januar 2003 - 19:03 Der er 9 kommentarer og
1 løsning

Hive data ud fra en Vector

Jeg har den her klasse med en metode, som sørger for at tilføje et løb til databasen over løb. Nu er det så jeg gerne vil vide hvordan man henter et bestemt løb ud af vectoren over alle løb. og der skal kunne hentes alle oplysninger ud ommkring et løb.

KODE:
----------------------------------------------------------------------
class CykelMain {

  private Vector Tourlist = new Vector();
  private Tour tour;
  /** Creates a new instance of CykelMain */
  public CykelMain() {
  }

  protected void addTour(int id, String navn, String aar, int distance) {
    tour = new Tour();

    tour.setID(id);
    tour.setNavn(navn);
    tour.setAar(aar);
    tour.setDistance(distance);

    Tourlist.add(tour);
  }
}
--------------------------------------------------------------------
I kan se hvordan man ligger en løb over i vectoren, nu skal jeg bare have det sammen data ud igen i en eller andenform.
Sig lige til hvis i skal bruge flere oplysninger om programmet.

På forhånd tak.
Avatar billede riversen Nybegynder
25. januar 2003 - 19:09 #1
brug get-metoderne i Vector
Avatar billede riversen Nybegynder
25. januar 2003 - 19:10 #2
Avatar billede arne_v Ekspert
25. januar 2003 - 19:14 #3
Hente Tour nummer N:
  Tour tour = (Tour)Tourlist.get(N-1);

Hente alle Tour'er:

for(int i = 0; i < Tourlist.size(); i++) {
  Tour tour = (Tour)Tourlist.get(i);
}
Avatar billede arne_v Ekspert
25. januar 2003 - 19:15 #4
PS: Og variablen bør hedde tourlist ikke Tourlist, da man normalt
    kun bruger navne der starter med stort til klasser.
Avatar billede jakoba Nybegynder
25. januar 2003 - 19:16 #5
Enumeration temp = elements( Tourlist );
boolean fundet = false;
Tour elem;
while ( temp.hasMoreElements() ) {
    elem = temp.nextElement
    if ( elem.getID() == detIdDuLederEfter ) {
        fundet = true;
        break;
    }
}
if ( fundet ) {
    // elem indeholder den tour du ville have
} else {
    // den var der ikke
}

mvh JakobA
Avatar billede arne_v Ekspert
25. januar 2003 - 19:16 #6
Og du kunne overveje at bruge en HashMap i.s.f. en Vector, fordi
så kunne du slå dine Tour'er op på id eller navn i.s.f. at skulle
løbe hele tourlist'en igennem.
Avatar billede jakoba Nybegynder
25. januar 2003 - 19:20 #7
Ups.
    elem = temp.nextElement();  // manglede '();'
Avatar billede arne_v Ekspert
25. januar 2003 - 19:22 #8
class CykelMain {

  private HashMap tourlist = new HashMap();

  protected void addTour(int id, String navn, String aar, int distance) {
    tour = new Tour();
    tour.setID(id);
    tour.setNavn(navn);
    tour.setAar(aar);
    tour.setDistance(distance);
    tourlist.put(new Integer(id), tour);
  }
}

Finde ID=x:

Tour tour = (Tour)tourlist.get(new Integer(x));

Finde all tour'er:

Iterator it = tourlist.keySet().iterator();
while(it.hasNext()) {
  Integer id = (Integer)it.next();
  Tour tour = (Tour)tourlist.get(id);
}
Avatar billede disky Nybegynder
25. januar 2003 - 19:56 #9
Skift til ArrayList hvis du ikke skal have dem syncronized, Vectore er langsommere
Avatar billede svuppenator Nybegynder
26. januar 2003 - 10:45 #10
OK... jeg giver pointet til arne_v for de fine svar det var lige det jeg søgte...
Det eneste der skulle kunne kritiseres ved eksperten er den forbistret HP flash reklame i toppen... nå men sådan skal det åbenbart være... :(
Tak for hjælpen.
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