Användbara datastrukturer i Java Organisation av ett Zoo Instans av

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