1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.

Slides:



Advertisements
Liknande presentationer
Repetition av språket Java
Advertisements

Klasser och objekt.
Algoritmer och data strukturer -Länkade listor
Sökning och sortering Linda Mannila
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
Metoder i java Det finns två typer av metoder i java
Ö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.
Välkommen Vahid Mosavat
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.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
1 ITK:P1 Föreläsning 6 Layoutmodeller i Java DSV Marie Olsson.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 3, torsdag 7 feb. kl Del 1. Klasser, objekt, metoder, konstruktorer, samlingar och tillstånd. Hur.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
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.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Datasamlingar och generiska enheter
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
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Arv.
Programmeringsteknik för Media1 & K1
Listor En lista är en föränderlig ordnad samling objekt.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar.
ITK:P1 Lektion 4 Att implementera en spelidé i Java DSV Peter Mozelius.
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.
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.
Föreläsning 10 Stränghantering.
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 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.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
1. Ett problem/uppgift.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
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.
Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd
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.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
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.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
TILLÄMPAD DATALOGI (TILDA) Övning 2
Programmeringsteknik för K och Media
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Iteratorer och generiska algoritmer sid. 1 6/28/2015 CD5250 OOP med C++ Mats Medin MDH/IDT Iterator vector ::iterator b = ivec.begin() vector ivec vector.
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
Algoritmer och datastrukturer
Presentationens avskrift:

1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius

2 Generiska klasser  En generisk klass lagras i en generisk container- klass

3 En tärningsklass public class Die { private int dots; public Die() { dots = roll(); } public int roll(){ return (int)(Math.random() * 6) + 1; } public int getDots(){ return dots; } }

4 En generisk parklass  En lite modifierad variant av den klass som finns i kursbokens kap 17: public class Pair { private T1 first; private T2 second; public Pair() {} public Pair(T1 x1, T2 x2) { first = x1; second = x2; }

5 En generisk parklass public void setFirst(T1 x) { first = x; } public void setSecond(T2 x) { second = x; } public T1 getFirst() { return first; } public T2 getSecond() { return second; }

6 En generisk containerklass import java.util.*; public class F6_exempel1 { List > diceList; public F6_exempel1() { diceList = new LinkedList >(); initList(); showList(); }

7 En generisk containerklass public void initList(){ diceList.add( new Pair (new Die(), new Die())); diceList.add( new Pair (new Die(), new Die())); diceList.add( new Pair (new Die(), new Die())); diceList.add( new Pair (new Die(), new Die())); }

8 En generisk containerklass public void showList(){ Iterator > i = diceList.iterator(); while(i.hasNext()){ Pair pair = i.next(); int first = pair.getFirst().getDots(); int second = pair.getSecond().getDots(); System.out.println(first + second); } }

9 Jokertecken / wildcards  Ett typuttryck Typ  Kan kombineras med: ? ? = vilken typ som helst ? extends X? = X eller subtyp till X ? super X? = X eller supertyp till X

10 Java Collections Framework  Ett ramverk med 3 delar:  Interface  Implementationer  Algoritmer  Polymorfa algoritmer:  Samma metod kan användas för olika implementationer av ett interface

11

12 Klassen Collections  java.util.Collections  En samling statiska metoder  Metoder som jobbar med datasamlingar  Metoder för sökning  min(Collection coll) minCollection  max(Collection coll) maxCollection  shuffle(List list) shuffleList  swap(List list, int i, int j) swapList  sort(List list) sortList  sort(List list, Comparator c) sortListComparator

13 Att sortera datasamlingar  En sorterbar lista med naturligt sorterbara element kan sorteras med hjälp av: java.util.Collections.sort(List list)sortList Vi tittar nu på ett enkelt kodexempel: import java.util.*; public class F6_exempel2{

14 Att sortera datasamlingar Map hMap2; List lista; public F6_exempel2(){ hMap2 = new HashMap (); initiera(); skrivUt(sortera()); }

15 Att sortera datasamlingar public void initiera(){ hMap2.put("Mikael", new Integer(4)); hMap2.put("Cecilia", new Integer(21)); hMap2.put("Peter", new Integer(9)); hMap2.put("Johan", new Integer(7)); }

16 Att sortera datasamlingar public List sortera(){ lista = new ArrayList (); Iterator i1 = hMap2.values().iterator(); while (i1.hasNext()) lista.add(i1.next()); Collections.sort(lista); return lista; }

17 Att sortera datasamlingar public void skrivUt(List lista){ Iterator i2 = lista.iterator(); while(i2.hasNext()) System.out.println(i2.next()); } public static void main(String[] args){ new F6_exempel2(); } }

18 Att sortera datasamlingar  En sorterbar lista som inte har naturligt sorterbara element kan sorteras med hjälp av: sortsort(List list, Comparator c))ListComparator Ett komplett körbart kodexempel med en klass som implementerar interfacet Comparator finns för avhämtning på kurshemsidan

19 Interfacet Comparator  Innehåller 2 abstrakta metoder  [ booleean equals(T1, T2)]  int compare(T1, T2) Metoden compare() returnerar: Ett negativt heltal om T1 < T2 0 om T1 == T2 Ett positivt heltal om T1 > T2

20 Att jämföra våra tärningar public class DiceComparator implements Comparator > { public int compare(Pair p1, Pair p2) { return (p1.getFirst().getDots() + p1.getSecond().getDots()) - (p2.getFirst().getDots() + p2.getSecond().getDots()) ; } }

21 Att sortera strängar  Att sortera strängar är lättare  Gör som i kursbokens kap 10 med:  java.util.Comparator  java.text.Collator  Collator.PRIMARY:  ”Java” = ”java”  ”Entre” = ”entré”

22 Att sortera svenska tecken  I teckentabellerna är det fel ordning (för det svenska alfabetet) när det gäller tecknen Å, Ä och Ö  Avänd klassen java.util.Locale  Läs mera i kursbokens kap 9.2

23 Testfrågor  Detta var allt för denna gång  Kontrollera att du har hängt med genom testet på kurshemsidan  Dax nu också att köra igång med Uppgift B! Hej då!