Datasamlingar och generiska enheter

Slides:



Advertisements
Liknande presentationer
Selektion, iteration och datastrukturer
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Datavalidering med JavaScript
Algoritmer och data strukturer -Länkade listor
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Fortsättningskurs i Programmering lektion 6
Klassarv och inkapsling
Repetition av objektorientering
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Att programmera i språket Java
1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius.
i olika programmeringsspråk
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
PROCESSPROGRAMMERING
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Vektorer (klassen Vector) Sortering
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Arv.
Programmeringsteknik för Media1 & K1
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
OOPJ I, 5p Objektorienterad Programmering i Java.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Föreläsning 5, Kapitel 5 Använda Java-bibliotek för att få avancerad funktionalitet Kursbok: “Objects First with Java - A Practical Introduction using.
Riktade listor i C och Java Lösning till gruppövning 1.
Java servlets och databaskopplingar
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Föreläsning 4 Klasser Och Objekt.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Introduktion till programmeringsspråket Java -Den allmänna.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Malmö högskola Rolf Axelsson 2003/2004 DA7720 Javaprogrammering - Fortsättningskurs, 5 poäng Collection - List och Set Map Iterator Enkellänkad lista Föreläsning.
Malmö högskola Rolf Axelsson 2004/2005 DA7720 Javaprogrammering - Fortsättningskurs, 5 poäng Collection - List och Set Map Iterator Enkellänkad lista Föreläsning.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Föreläsning 8: Exempel och problemlösning
Repetitionsföreläsning 1: Lite rekursion & problemlösning
Presentationens avskrift:

Datasamlingar och generiska enheter ITK:P2 F5 Datasamlingar och generiska enheter DSV Peter Mozelius

Datasamlingar Objektorienterad programmering bygger på inkapsling Det finns ändå ett lika stort behov av att organisera data som inom andra typer av programmering Olika program behöver olika typer av datasamlingar

Att välja datasamling Vad är viktigt i din lösning? Sortering Snabb åtkomst Snabb insättning Datasamlingar som kan expandera Huvudsyftet med denna föreläsning är att du i framtiden alltid ska fundera på vilken datasamling som passar bäst för det problem som du ska lösa

Containerklasser i Java Version 1.0 Klasser Vector Stack (specialisering av Vector) Hashtable BitSet Interface Enumeration

Containerklasser i Java Version 1.2 Containerklasserna delas nu upp i två huvudgrupper: Samlingar – Collections Avbildningstabeller – Maps Interfacen ska nu som i en del andra programmeringsspråk (C++) separeras från implementationen

Gränssnitt - implementation Ett köexempel Interfacet Queue med metoder som bl a: offer() remove() Kan implementeras som t ex: ArrayBlockingQueue LinkedBlockingQueue

Samlingar Två typer av samlingar: De som tillåter dubbletter Listor Vector Stack De som inte tillåter dubbletter (mängder) TreeSet HashSet

Java Collection Framework 1 The Collection interface Mängder och Listor

Avbildningstabeller En instans av en avbildningstabell (map), lagrar element som är associerade med nyckelvärden (keys) (det får ej finnas dubblettnycklar) TreeMap HashMap LinkedHashMap

Java Collection Framework 2 Avbildningstabeller / Maps

java.util.HashMap i ver < 1.5 I äldre versioner av Java kan en HashMap instansieras och användas enligt följande: import java.util.HashMap; public class F5_exempel1{ HashMap hMap; public F5_exempel1(){ hMap = new HashMap(); initiera(); skrivUt(); }

java.util.HashMap i ver < 1.5 public void initiera(){ hMap.put("Cecilia", new Integer(7)); hMap.put("Mikael", new Integer(4)); hMap.put("Johan", new Integer(21)); hMap.put("Peter", new Integer(9)); } public void skrivUt(){ System.out.println(hMap.get("Johan")); System.out.println(hMap.get("Peter")); System.out.println(hMap.get("Cecilia")); System.out.println(hMap.get("Mikael"));

Generiska containerklasser Fr om Java version 5.0/JDK1.5 så har containerklasserna av säkerhets-skäl nu blivit generiska Datasamlingar ska nu typbestämmas vid initieringen i stil med: new HashMap<NyckelTyp,VärdeTyp>();

HashMap–nycklar & värden Nycklarna kan hämtas ut genom: Set<Typ> nycklar = hMap.keySet(); Värden kan hämtas ut genom: Collection<Typ> värden = hMap.values();

Interfacet Iterator För hjälpobjekt som kan kopplas till en datasamling Ersätter det äldre Enumeration En HashMap får en iterator som bygger på nycklarnas värden: Set<Typ> nycklar = hMap2.keySet(); Iterator<Typ> i = nycklar.iterator();

HashMap fr o m ver 1.5 import java.util.*; public class F5_exempel2{ Map<String,Integer> hMap2; public F5_exempel2(){ hMap2 = new HashMap<String,Integer>(); initiera(); skrivUt(); }

HashMap fr o m ver 1.5 public void initiera(){ hMap2.put("Mikael", new Integer(4)); hMap2.put("Peter", new Integer(9)); hMap2.put("Johan", new Integer(7)); hMap2.put("Cecilia", new Integer(21)); } public void skrivUt(){ //!OBS utskriftsordningen!

HashMap fr o m ver 1.5 }//skrivUt Set<String> nycklar = hMap2.keySet(); Iterator<String> i = nycklar.iterator(); while(i.hasNext()) System.out.println(hMap2.get(i.next())); Collection<Integer> värden = hMap2.values(); Iterator<Integer> i2 = värden.iterator(); while(i2.hasNext()) System.out.println(i2.next()); }//skrivUt

java.util.ArrayList En lista implementerad som en array/ ett fält Skapa en typbestämd lista enligt: List<KlassTyp> minFältLista = new ArrayList<KlassTyp>();

java.util.List

Testfrågor Ett körbart exempel som visar hur man använder en ArrayList finns på kurshemsidan Du kan även kontrollera att du har hängt med genom självtestet på kurshemsidan Hej då!