Gå til innhold

Lagre flere objekter "sammen"


Anbefalte innlegg

Har en oppgave som kort sagt går ut på å ta seg av rom reservering.

 

Lurer litt på hvordan jeg skal kunne "lagre" hver reservasjon?

 

public class Konferansesenter {
   private ArrayList<Rom> rommene = new ArrayList<Rom>();
       
   /**
    * Reserver et rom
    * @param fra Fra tid på formen ååååmmddttmm
    * @param til Til tid på formen ååååmmddttmm
    * @param antPers antall personer
    * @param tlf Telefonnr til kontaktperson
    * @return false hvis ingen rom ledig på gitt tidsrom med det antallet personer,
    * true hvis ok.
    */
   public boolean reserverRom(long fra, long til, int antPers, String tlf, String navn) {
       Kunde kunden = new Kunde(navn, tlf); // Oppretter ny kunde
       Tidspunkt fraTid = new Tidspunkt(fra); // Oppretter nytt tidspunkt
       Tidspunkt tilTid = new Tidspunkt(til); // Oppretter nytt tidspunkt
       Reservasjon reservasjonen = new Reservasjon(fraTid, tilTid, kunden); // Oppretter ny reservasjon
       
       Rom rommet = null;
       
       // Finn rom som er ledig og stort nok
       for (int i = 0; i < rommene.size(); i++) {
           if ((rommene.get(i).getAntPers() >= antPers) && (!reservasjonen.overlapp(fraTid, tilTid))) {
               rommet = rommene.get(i);
           }
       }
       
       // Fant ikke noe rom som var ledig eller stort nok
       if (rommet == null) {
           return false;
       }
       
      // Hva skal jeg gjøre her for å reservere rommet med "rommet" og "reservasjonen"?

   }
}

 

Noen forslag? :)

Lenke til kommentar
Videoannonse
Annonse

Flere måterå gjøre det på. En reservasjon kan ha en referanse til rommet som er reservert. Dernest trenger du en egen datastruktur for holde på reservasjonene. Alternativt, hvert rom har en liste over sine reservasjoner slik at man kan enkelt slå opp når et rom er reservert. Man kan naturligvis også kombinere disse to. Hva som er best? Tja... Gjør det du synes er enklest

Lenke til kommentar

Det du trenger er en ordentlig persisteringsmekanisme. En hvor en database ligger i bånn er vel å foretrekke. Her finnes det en rekke alternativer. Selv foretrekker jeg Hibernate, som er en persisteringsmekanisme som er kompatibel med de fleste databaser på markedet.

 

Du kan lese mer om Hibernate på www.hibernate.org

 

Hilsen

 

Werner

Lenke til kommentar
Vil det si at jeg kan opprette en tabell slik?

ArrayList<Rom><Reservasjon> reservasjonsTabell = new ArrayList<Rom><Reservasjon>();

 

Da kan jeg legge "rommet" og "reservasjon" inn i den tabellen?

7694368[/snapback]

Ikke helt, du måtte hatt to parallelle datastrukturer for dette. Jeg ville nok brukt et Map med romnummer som nøkkel i steden for en liste, da disse gir mye raskere oppslag på enkeltrom. F.eks.:

Map<Integer><Rom> rom = new HashMap<Integer><Rom>();
Set<Reservasjon> reservarsjoner = new HashSet<Reservasjon>();

Selv ville jeg nok også brukt Hibernate, men det kommer jo an på hensikten med programmet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...