Datastrukturer
Vi skal lære om flere datastrukturer. Hidtil har ArrayList tjent os godt, men Collections
frameworket i Java tilbyder mange flere, hver med deres egenskaber. Vi skal især kigge nærmere på
List, Set og Map* i denne uge - og deres individuelle arvinger.
Vi kigger også på hvordan vi kan lave vores egne specialicerede strukturer ved at wrappe nogle af
de eksisterende, og hvordan vi kan lave vores egne datatyper med Enum
*) Teknisk set er Map ikke en del af Collections frameworket, men den er en vigtig datastruktur, så den er altid med alligevel!
- Kendskab til List, Set, Lists og Maps samt deres egenskaber og metoder.
- Forståelse for hvordan datastrukturerne bruges, og for hvordan man udvælger hvilken man vil bruge
- Anvendelse af forskellige datastrukturer i praksis til typiske opgaver som at finde eller fjerne bestemte elementer, undgå dubletter eller tælle forekomster af kategorier
- Øvelser: link til Notion
- W3Schools om datastrukturer
- Dev.java om Collections framwork
Vi går lidt dybere i hvordan Set og Map kender forskel på objekterne, og hvorfor det nu er at vi nogle gange kan bruge == og andre gange er nødt til at bruge .equals().
Og vi bliver også introduceret til .hashCode()
- forstå hvornår objekter er “ens” versus “identiske”
- forstå hvorfor vi har behov for .equals og .hashCode
- kunne bruge generatorer til at lave koden for .equals og .hashCode
Sortering. Noget af det rigtig fede ved at bruge de forskellige Collections er at man automatisk får
værktøjer der kan sortere ens data.
Vi skal forstå hvordan man sammenligner to objekter for at vurdere hvilken rækkefølge de sorteres i,
og hvordan vi laver en Comperator og giver til den indbyggede sorterings-algoritme.
Og så kigger vi lidt på datastrukturer der sorterer sig selv. Opgaver
- Forstå
Comperatorog kunne lave egne comperatorer til at bruge i sorterings-algoritmer - Kendskab til
SortedMapogSortedSetsamt forskellen påTreeMap/TreeSetogHashMap/HashSeti forhold til sortering.
Torsdag arbejder I med torsdags-opgaven - I skal bygge et kasseapparat til et supermarked, som automatisk udregner tilbud, og udskriver en overskuelig kassebon.
Opgaven går i høj grad ud på at udvælge de bedste datastrukturer til at løse de forskellige problemer.
Review som vi plejer, men med ekstra fokus på hvilke datastrukturer der er valgt, og hvordan de er anvendt