110 likes | 204 Views
Collectionklasser. Ekstra materiale. Collections. Motivation hvorfor bruge collections? Realisering af en-til-mange relationer Importer, erklær, initialiser Den udvidede for-løkke Autoboxing og wrapperklasser Andre collections i Java. Objektdiagram. :Track. :Track. :Player. :Track.
E N D
Collectionklasser Ekstra materiale
Collections • Motivation • hvorfor bruge collections? • Realisering af en-til-mange relationer • Importer, erklær, initialiser • Den udvidede for-løkke • Autoboxing og wrapperklasser • Andre collections i Java
Objektdiagram :Track :Track :Player :Track :PlayList :PlayList :Track :Track name lists tracks name name time name time artist artist artist tracks name name time artist time name time artist :ArrayList :ArrayList :ArrayList elements elements elements
Sekvensdiagram - find :PlayList :Player :PlayList :Track :Track :Track find(s) search(s) search(s) getName() getName() getName() getName() getName()
List, et forkert eksempel List<int> l= new ArrayList<int>(); l.add(4); l.add(5); l.add(1); l.add(7); l: 0 1 2 3 size() = 4 4 5 1 7
ArrayList autoboxing l: int Integer x: 7 7 autounboxing int Integer Wrapperklasser og autoboxing • Javas containerklasser kan kun indeholde objekter • Hvad gør man hvis man har brug for en liste af værdier fra en primitiv type, f.eks. int? • Wrapperklasser • int Integer • double Double • boolean Boolean • ... ArrayList<Integer> l; l= new ArrayList<Integer>(); l.add(7); int x= l.get(0);
List, det rigtige eksempel ArrayList<Integer> l= new ArrayList<Integer>(); l.add(4); l.add(5); l.add(1); l.add(7); l: 0 1 2 3 size() = 4 5 4 7 1
Containerklasser i Java Interfaces (specifikation) • Containerklasser • antag at man skal repræsen-tere et kartotek over studeren-de på dette kursus • der er behov for en klasse der kan modellere begrebet stu-dent • der er også behov for et sær-ligt objekt der kan opbevare student-objekterne • i Java findes en række forskel-lige collectionklasser • collectionklasserne er organi-seret i et klassifikationshierarki H V A D H V O R D A N HashSet impl Set ArrayList impl List HashMap impl Map TreeSet impl SortedSet LinkedList impl List TreeMap impl SortedMap Klasser (implementation)
List ordnet samling objekter (rækkefølgen har betydning) 0, 1, ..., size()-1 Set en samling objekter uordnet eller ordnet (sorted) Collection samlebegreb for List og Set Map mængde af par ordnet eller uordnet (sorted) [ 4, 5, 1, 7 ] [ 7, 5, 1, 4 ] { 4, 5, 1, 7 } { 7, 5, 1, 4 } { (”gigantisk”, ”gigantic”), (”abe”, ”monkey”) } Forskellige containere 0 1 2 3 0 1 2 3