Organisation av ett Zoo Användbara datastrukturer i Java • Uppgiften är att skriva ett program som håller reda på ett zoo • Vårt zoo ska ha ett namn och kunna bestå av flera avdelningar (akvarium, björngrop, vildmark o s v) • Varje avdelning ska ha ett namn och kunna bestå av flera djurarter (delfin, säl, brunbjörn, isbjörn, älg, ren o s v) Praktikfall: Organisation av ett Zoo Användbar datastruktur: instans av Vector Datastrukturer för ett Zoo Erik Forslin [email protected] Rum 1445, plan 4 på Nada 08-7909690 • Varje djurart ska ha ett namn och ett antal som säger hur många djur som finns av den arten • Det ska gå att räkna antalet djur av en viss art, antalet djur vid en viss avdelning och antalet djur på hela vårt zoo 1 2 Instans av Vector • En instans av en Vector (kallas ofta bara ”vektor”) används för att hålla reda på godtyckligt många referenser Datastruktur för ett Zoo • Varje referens har en viss position (index) i vektorn En enkel datastruktur för vårt zoo kan se ut som följer: • Man kan lägga till en referens i vektorn med hjälp av metoden add() • Man kan få reda på ett referensvärde med hjälp av metoden elementAt() Arken Akvariet Delfin Säl 3 st 8 st Vildmarken Björngropen Älg Björn Isbjörn 2 st 3 st 1 st • Man kan ta reda på hur många referenser som finns i vektorn med hjälp av metoden size() 3 4 Datastruktur mer i detalj Datastruktur på Java-vis Ett zoo namn Arken avdelningar instans av Zoo instans av String "arken" String namn ? ? Vector avdelningar instans av Vector instans av Djurart String 0 1 2 ? En avdelning namn ? En avdelning antal namn Akvariet namn Vildmarken instans av instans av djurarter Vector Avdelning djurarter Vector 0 1 2 djurarter String namn En djurart namn Delfin antal 3 En djurart namn Säl antal 8 Datastruktur med metoder instans av Zoo instans av String "arken" String namn ? ? Vector avdelningar instans av Vector instans av Djurart frågaEfterAvdelningar() String 0 1 2 ? antalDjur() namn ? size() antal instans av instans av Vector Avdelning Vector int 3 Djurart() antalDjur() 0 1 2 djurarter String namn Avdelning() ? ? size() ? ? instans av instans av String "akvarium" String "delfin" ? ? 5 inventera() int 3 instans av instans av String "akvarium" String "delfin" ? ? ? ? frågaEfterDjurarter() antalDjur() 7 ? ? 6