Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.

Slides:



Advertisements
Lignende præsentationer
1 Frameworks. 2 Plan Frameworks • Kollektioner • Input/output Nyt designmønster: Decorator.
Advertisements

Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Collectionklasser Ekstra materiale. Collections Motivation – hvorfor bruge collections? Realisering af en-til-mange relationer – Importer, erklær, initialiser.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Forelæsning 3.1 Collections Javas for-each løkke
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper: arrays, stakke, køer,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Forelæsning 7.1 – repetition
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Variabler, klassevariabler, identitet og lighed, collections
Introduktion til programmering Repetition - ArrayList.
Checklister Comparable og Comparator. dIntProg, E08Checklister.2 Checkliste for Comparable Antagelse –vi har en liste med elementer af typen T: List lst;
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende Objektorienteret Programmering1 Collections og opremsning Nye typer collections, objektorienteret sweep.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering Collections Samlinger af objekter.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Introduktion til programmering Repetition. dIntProg, F08Repetition.2 dIntProg Sidste forelæsning (12/10) –kort tilbagemelding på evaluering –repetition.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Algoritmeskabeloner findOne, findAll, findNoOf, findSumOf Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder.
Forelæsning Uge 3 – Mandag Niveauer af programbeskrivelser – Statiske / dynamiske beskrivelser ArrayList –Collection med variabelt antal elementer –Der.
Forelæsning Uge 6 – Mandag
Forelæsning Uge 4 – Mandag
Forelæsning Uge 5 – Mandag
Forelæsning Uge 12 – Torsdag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 6 – Mandag
Forelæsning Uge 3 – Mandag
Klasser og objekter (Afsnit i manualen).
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 3 – Mandag
Velkommen til B klassen
Forelæsning Uge 3 – Mandag
Parametrisering En kort introduktion.
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 3 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Collectionklasser Klassifikation og anvendelse

dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt skal der bruges en objektreference (en variabel) –for at holde fast i objekter skal der bruges objektreferencer... Collections –en særlig slags objekter der kan opbevare (referencer til) objekter java.util –en pakke der bl.a. indeholder klasserne i Javas såkaldte collection framework

dIntProg, F08Collectionklasser.3 Containerklasser i Java 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 –colectionklasserne er organi- seret 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) HVADHVORDANHVADHVORDAN

dIntProg, F08Collectionklasser.4 Forskellige containere 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 { 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”) }

dIntProg, F08Collectionklasser.5 List, et forkert eksempel List l= new ArrayList (); l.add(4); l.add(5); l.add(1); l.add(7); l: size() =

dIntProg, F08Collectionklasser.6 Collection List –generelt interface for lister (sekvenser) af objekter af typen E public interface List { boolean add(E o); void add(int index, E element); E get(int index); boolean contains (Object o); boolean isEmpty(); Iterator iterator(); boolean remove(Object o); int size();... } Se JavaDoc...

dIntProg, F08Collectionklasser.7 Eksempel: Liste af personer public void testMethod1() { Person tp; List l= new ArrayList (); tp= new Person( "Bruce Springsteen", 57 ); l.add(tp); tp= new Person( "Paul McCartney ", 65 ); l.add(tp); tp= new Person( "Michael Caspersen", 46 ); l.add(tp); }

dIntProg, F08Collectionklasser.8 Objektmodel for personeksempel l: ArrayList size() = 3 age: name: ”Bruce Springsteen” 57 age: name: ”Paul McCartney” 65 age: name: ”Michael Caspersen” 46

dIntProg, F08Collectionklasser.9 Gennemløb med udvidet for-løkke public void testMethod1() { Person tp; List l= new ArrayList (); tp= new Person( "Bruce Springsteen", 57 ); l.add(tp); tp= new Person( "Paul McCartney ", 65 ); l.add(tp); tp= new Person( "Michael Caspersen", 46 ); l.add(tp); // for alle personer p i l... for ( Person p : l ) { if ( p.isOld() ) { System.out.println(p); }

dIntProg, F08Collectionklasser.10 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 –... List l; l= new ArrayList (); l.add(7); int x= l.get(0); Integerint autounboxing autoboxing l: 7 x: 7 intInteger ArrayList

dIntProg, F08Collectionklasser.11 List, det rigtige eksempel List l= new ArrayList (); l.add(4); l.add(5); l.add(1); l.add(7); l: size() =

dIntProg, F08Collectionklasser.12 Eksempel: gennemsnitsalder /** * return the average age of the people in list persons */ private int averageAge(List persons) { ? } Specifikation (hvad)

dIntProg, F08Collectionklasser.13 Implementation (1) /** * return the average age of the people in list persons */ private int averageAge(List persons) { if ( persons.isEmpty() ){ // case 1 } else { // case 2 } Implementation (hvordan)

dIntProg, F08Collectionklasser.14 Implementation (2) /** * return the average age of the people in persons */ private int averageAge(List persons) { if ( persons.size() == 0 ){ return 0; } else { return ageSum(persons) / persons.size(); } /** * return the sum of the age of the people in persons */ private int ageSum(List persons) { ? }

dIntProg, F08Collectionklasser.15 Implementation (3) /** * return the sum of the age of the people in persons */ private int ageSum(List persons) { int s= 0; // accumulate the sum of... in variable s return s; }

dIntProg, F08Collectionklasser.16 Implementation (4) /** * return the sum of the age of the people in persons */ private int ageSum(List persons) { int s= 0; for (Person p : persons) { s= s + p.getAge(); } return s; }