Collections och annat nyttigt

Relevanta dokument
Tentamen, EDAA20/EDA501 Programmering

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Föreläsning 3. Stack

Föreläsning 3. Stack

Arkitekturell systemförvaltning

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Referensexemplar. Vi önskar er Lycka till! 1. Välkommen till Frö-Retaget

Del A (obligatorisk för alla)

Sammanfattning och repetition utgående från typiska tentamensuppgifter

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 14 Innehåll

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

Föreläsning 2. Länkad lista och iterator

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Generisk klass med typparameter Inre klass - ListIterator

OOP Objekt-orienterad programmering

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

Malmö stad, Gatukontoret, maj 2003 Trafiksäkra skolan är framtaget av Upab i Malmö på uppdrag av och i samarbete med Malmö stad, Gatukontoret.

Föreläsning 7. Träd och binära sökträd

Programmering för språkteknologer II, HT2011. Rum

Objektorienterad programmering i Java

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

List.java. List.java. Printed by Tom Smedsaas

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

OOP Omtenta

Objektorienterad Programmering (TDDC77)

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

Föreläsning 4 Innehåll

Föreläsning 12: Exempel och problemlösning

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

DAT043 - föreläsning 8

Innehåll. Sökning och hashtabeller. En bilsamling att söka i. En bil-klass att söka efter. Hur hittar vi alla bilar som uppfyller ett annat villkor

Föreläsning 14. Filhantering

Föreläsning 8: Exempel och problemlösning

OOP Tentamen

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Laboration 1a: En Trie-modul

OOP Tenta

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen i Programmering

Hittills på kursen: E = hf. Relativitetsteori. vx 2. Lorentztransformationen. Relativistiskt dopplerskift (Rödförskjutning då källa avlägsnar sig)

ICEBREAKERS. Version 1.0 Layout: Kristin Rådesjö Per Wetterstrand

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Konstruktion av klasser med klasser

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

Föreläsning 11: Rekursion

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

Tommy Färnqvist, IDA, Linköpings universitet

Laboration A Objektsamlingar

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 9. Generiska enheter Inre klasser Anonyma klasser Kloning

Del A (obligatorisk för alla)

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Föreläsning 7. Träd och binära sökträd

Föreläsning 1 Datastrukturer (DAT037)

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Tentamen i Algoritmer & Datastrukturer i Java

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Tentamen, EDAA20/EDA501 Programmering

Tentamen i Algoritmer & Datastrukturer i Java

Arbetsmarknad - marknadsformer. Förra gången. Svensk arbetsmarknad. Arbetsutbudets komponenter

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Generiska datatyper. Parametrisk Polymorfism: Generics. Generisk lista. Utvikning: Typer

OOP Tentamen

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

13 Prioritetsköer, heapar

Föreläsning 3 Datastrukturer (DAT037)

Obligatorisk uppgift: Numerisk kalkylator

Observera. Tentamen Programmeringsteknik II Skrivtid:

Föreläsning 12 Innehåll

Att öva på och förstå ett program med flera samverkande klasser.

Obligatorisk uppgift: Numerisk kalkylator

Arrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB

Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Del A (obligatorisk för alla)

Graf Smu-Lrd, Hyb-Tou, V-L, Hd-Hm D

Sortering. Föreläsning 12 Innehåll. Sortering i Java. Sortering i Java Exempel. Sortering

Länkade strukturer, parametriserade typer och undantag

Mer grafik. Jan Erik Moström

Transkript:

Va innbär programmring? Collctions och annat nyttigt En stor l av tin så sättr man ihop olika algoritmr och atastrktrr så att fnkar för st t aktlla problmt. Förhoppningsvis så ägnar man också n hl l ti åt att fnra t hr man ska sätta ihop m så att programmt blir lätt att nrhålla Typiska atastrktrr Uppgift: Vän på n txtsträng, vs blir Arrayr Listor Mängr ash tabllr Stackar Mn om man ska ha å?

Collction Framwork Stanarproblm som lösts många gångr Listor Snrra ignom obkt antra mängr Arrayr Känna ign or ashtabllr som Nyckl - vär bhövr Sortring Stackar tökas Gnrlla implmntationr som kan använas på många ställn St Collction - gnrll mäng m sakr a, clar, mpty, qals, contains St - n mäng List - n orna mäng Itratorr - för att travrsra mängn pblic class Dmo pblic static voi main( String[] args ) throws IOExcption String linin; ashst hs = nw ashst(); BffrRar br = nw BffrRar( nw InptStramRar( Systm.in ) ); Systm.ot.print("> "); linin = br.ralin(); ashst - snabbt, oornat StringToknizr st = nw StringToknizr(linIn); String str; LinkashSt - långsammar, ornat whil( st.hasmortokns() ) str = st.nxttokn(); if( hs.contains( str ) ) Systm.ot.println( str + " - Fanns ran" ); ls hs.a( str ); Systm.ot.println( str + " - Lagt till" );

Använningsområ // Kolla va som finns i stt Itrator it = hs.itrator(); whil( it.hasnxt() ) Systm.ot.println( it.nxt() ); Alla lägn är ag bhövr hålla koll på: att man int använr n sak flr än n gång att systm har tt visst lsystm installrat tc Listor pblic class Dmo pblic static voi main( String[] args ) throws IOExcption <snipp> ArrayList list = nw ArrayList(); whil( st.hasmortokns() ) list.a( st.nxttokn() ); Itrator it = list.itrator(); whil( it.hasnxt() ) Systm.ot.print( it.nxt() + " "); Vctor - gammal klass ArrayList - lista implmntra mha array list.a(1,"xxxx"); list.a(3,"xxxx"); int antal = list.siz(); for( int i = 0 ; i < antal ; i++) Systm.ot.print( list.gt(i) + " " ); LinkList - länka lista list.st(1,"zzzz"); list.st(3,"zzzz"); list.rmov(antal-1); list.rmov(1);

Använningsområ Övrallt är man bhövr bhålla orningn på sakr Sortra mängr Elmntn har tt förhållan till varanra istorilista i n wbläsar Comparabl En bostaskö <0 - (a < b) tc 0 - (a = b) ArrayList llr LinkList pblic class Dmo pblic static voi main( String[] args ) throws IOExcption TrSt ts = nw TrSt(); <snipp> StringToknizr st = nw StringToknizr(br.raLin()); String str; whil( st.hasmortokns() ) str = st.nxttokn(); if( ts.contains( str ) ) Systm.ot.println( str + " - Fanns ran" ); ls ts.a( str ); Systm.ot.println( str + " - Lagt till" ); Itrator it = ts.itrator(); whil( it.hasnxt() ) Systm.ot.println( it.nxt() ); n kommr nästan samma ko som för ashst tstt mn n använs TrSt >0 - (a > b) ashst TrSt använs för ko kommr mn n nästan samma som tstt pblic class Prson privat String first, last; privat transint int somval = 0; pblic Prson( this.first this.last somval String first, String last, int x ) = first; = last; = x; pblic String tostring() rtrn first + " " + last + " " + somval; Vilkn orning ska vara i?

pblic class Prson implmnts Comparabl privat String first, last; privat transint int somval = 0; pblic Prson( this.first this.last somval String first, String last, int x ) = first; = last; = x; TrSt ts = nw TrSt(); boolan mmy; mmy mmy mmy mmy = = = = ts.a( ts.a( ts.a( ts.a( nw nw nw nw Prson("Kall","Anka",12) ); Prson("Tatt","Anka",36) ); Prson("Fnatt","Anka",11) ); Prson("Knatt","Anka",9) ); pblic int comparto( Obct o ) Prson p = (Prson) o; int rslt = last.comparto(p.last); if( rslt == 0 ) rslt = first.comparto(p.first); if( rslt == 0 ) rslt = somval - p.somval; rtrn rslt; - ava Dmo Fnatt Anka 11 Kall Anka 12 Knatt Anka 9 Tatt Anka 36 pblic String tostring() rtrn first + " " + last + " " + somval; pblic int comparto( Obct o ) Prson p = (Prson) o; int rslt = somval - p.somval; if( rslt == 0 ) rslt = last.comparto(p.last); if( rslt == 0 ) rslt = first.comparto(p.first); rtrn rslt; - ava Dmo Knatt Anka 9 Fnatt Anka 11 Kall Anka 12 Tatt Anka 36 Använningsområ Övrallt är information måst ligga i n viss orning Arssbok Artikllista tc

Maps pblic class Dmo pblic static voi main( String[] args ) TrMap tm = nw TrMap(); Obct mmy; mmy = tm.pt("orföran", nw Prson("Joakim","von Anka",112)); mmy = tm.pt("kassör", nw Prson("Alxanr","Lcas",43)); mmy = tm.pt("skrtrar", nw Prson("Kasa","Anka",44)); St kys Itrator it = tm.kyst(); = kys.itrator(); Obct kyval; Nyckl - vär par whil( it.hasnxt() ) kyval = it.nxt(); Systm.ot.println( "(" + kyval + "," + tm.gt(kyval) + ")" ); Myckt myckt använbart TrMap tm = nw TrMap( nw Comparator() privat int translat( String s ) if( s.qals("orföran") ) rtrn 1; ls if ( s.qals("kassör") ) rtrn 2; ls if ( s.qals("skrtrar") ) rtrn 3; ls rtrn 99; pblic int compar( Obct o1, Obct o2 ) rtrn translat( (String)o1 ) - translat( (String)o2 ); ); - ava Dmo (Kassör,Alxanr Lcas 43) (Orföran,Joakim von Anka 112) (Skrtrar,Kasa Anka 44) Använningsområ Många, myckt använbar Enkla atabasr Lagra inställningar tc - ava Dmo (Orföran,Joakim von Anka 112) (Kassör,Alxanr Lcas 43) (Skrtrar,Kasa Anka 44)

Älr klassr Bygga viar ashtabl Proprtis Om t int passar : skapa n gn Vctor Collctions (obs int Collction) Stack Olika vanliga oprationr BitSt Uppgift: Vän på n txtsträng, vs blir Obsrvr - Obsrvabl Ska ssa känna av om nåt har hänt Mn om man ska ha å? Ska n vta om anra obktn?

Obsrvr - Obsrvabl Obsrv har n lista är intrssra klintr lagras Basklass - Obsrvabl Klintrna anmälr sitt intrss Obsrv Klintr Intrfac - Obsrvr Om nåt hänr så signalrar Obsrv alla som finns i listan pblic class IntrsionDtctor xtns Obsrvabl privat Ranom ran = nw Ranom(); pblic class SysAm implmnts Obsrvr privat String nam; pblic voi connct() if( ran.nxtboolan() ) // Intrång stchang(); notifyobsrvrs(); pblic SysAm( String nam, IntrsionDtctor i ) this.nam = nam; i.aobsrvr(this); pblic voi pat( Obsrvabl srvr, Obct rr ) Systm.ot.println( nam + " förhinrar intrång");