Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.

Lignende præsentationer


Præsentationer af emnet: "Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere."— Præsentationens transcript:

1 Containerklasser – klassifikation og brug

2  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere et kartotek over studerende på dette kursus –der er behov for en klasse der kan modellere begrebet student –der er også behov for et særligt containerobjekt der kan opbevare student- objekterne –i Java findes en række forskellige containerklasse –containerklasserne er organiseret i et klassifikationshierarki HashSet impl Set TreeSet impl SortedSet ArrayList impl List LinkedList impl List HashMap impl Map TreeMap impl SortedMap Interfaces (specifikation) Klasser (implementation)

3  Michael E. Caspersen, 2003IOOPContainerklasser.3 Forskellige collections { 4, 5, 1, 7 }  { 7, 5, 1, 4 } { 1, 4, 5, 7 } [ 4, 5, 1, 7 ]  [ 7, 5, 1, 4 ] { (”gigantisk”, ”gigantic”), (”abe”, ”monkey”) } { (”abe”, ”monkey”), (”gigantisk”, ”gigantic”) } Collection –samlebegreb for Set og List Set –uordnet samling objekter SortedSet –sorteret samling objekter List –ordnet samling objekter (rækkefølgen har betydning) –0, 1,..., size()-1 Map –uordnet mængde af par SortedMap –sorteret mængde af par 0 1 2 3

4  Michael E. Caspersen, 2003IOOPContainerklasser.4 Collection, List og ArrayList Collection –generelt interface for collections –kan opbevare objekter af typen Object –bøvl med simple typer (wrapper-klasser) Simpel typeWrapper intInteger booleanBoolean charChar...... interface Collection { boolean add(Object o); boolean addAll (Collection c); void clear(); boolean contains (Object o); boolean isEmpty(); Iterator iterator(); boolean remove(Object o); boolean removeAll(Collection c); int size();... } interface List extends Collection {... } class ArrayList implements List {... }

5  Michael E. Caspersen, 2003IOOPContainerklasser.5 Eksempel public class CollectionTest { private static Collection createCollection() { return new ArrayList(); } public static void run() { Person p; Collection c = createCollection(); p = new Person( "Bruce Springsteen", 53 ); c.add(p); p = new Person( "Paul McCartney ", 60 ); c.add(p); p = new Person( "Michael Caspersen", 42 ); c.add(p); Iterator i = c.iterator() while ( i.hasNext() ) { p = (Person) i.next(); if ( p.isFabulousMusician() ) System.out.println(p); } } }

6  Michael E. Caspersen, 2003IOOPContainerklasser.6 Iterator –et interface der fastlægger hvordan man itererer over objekterne i en container –fordrer ikke kendskab til den konkrete organisering af containeren –virker for vilkårlig container –containere tilbyder en metode, iterator, der returnerer et Iterator-objekt til den pågældende container interface Iterator { boolean hasNext(); Object next(); void remove(); } class ArrayList implements List { class X implements Iterator {... }... public Iterator iterator() { return new X(); }


Download ppt "Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere."

Lignende præsentationer


Annoncer fra Google