Samlingar Collection classes

Storlek: px
Starta visningen från sidan:

Download "Samlingar Collection classes"

Transkript

1 Samlingar Collection classes Sven-Olof Nyström Uppsala Universitet 17 juni 2005 Skansholm: Kapitel 9, 19 Se även Suns tutorial om Collections 1

2 Motivation: Vill samla olika datastrukturer för att representera tabeller, mängder, sekvenser i ett standardbibliotek. Viktigt att alla datastrukturer kan hanteras på ett likartat sätt, så att det är lätt att lära sig använda biblioteket man kan lätt ändra val av datastruktur lätt att sätta ihop olika programkomponenter som skickar och tar emot datastrukturer i form av samlingar 2

3 Olika slag av samlingar i Java Arrayer (Till exempel: int[]) grundläggande lagrar alla datatyper Vector liknar array men kan expanderas lagrar endast äkta objekt (som definierats i en klass) 3

4 Samlingar (forts) Samlingar (Collections Framework) relativt nytt: Från Java 2 platform, version 1.2 idé: ett litet antal generella gränssnitt (interface) som beskriver mängder, sekvenser, tabeller varje samling implementerar ett eller flera gränssnitt 4

5 Repetition: Interface En slags lättviktsklasser. Beskriver en uppsättning metoder. Man säger att en klass implementerar ett interface. 5

6 Collections, ett första exempel Simple.java Simple142.java Samma exempel i gamla Java 6

7 Interface för samlingar Collection Map Set List SortedMap SortedSet 7

8 Exempel på klasser som implementerar samlingar ArrayList Arrayer. Implementerar List LinkedList Länkade listor. Implementerar List HashMap Hashtabeller. Implementerar Map TreeSet Balanserade binärträd. Implementerar Set, SortedSet 8

9 Collection En samling element operationer för att lägga till och ta bort element Konvention: Varje klass K som implementerar Collection har en konstruktor K(Collection c) (som tar en godtycklig samling) Därmed kan man lätt konvertera mellan olika samlingar 9

10 Operationer på Collection <E> int size() boolean isempty() boolean contains(object element) boolean remove(object element) boolean add(e element) Iterator<E> iterator() add och remove returnerar true om samlingen ändras till följd av operationen. Ett objekt av klassen iterator (en iterator) är ett slags index eller pekare som används om man vill gå igenom alla element i en samling. 10

11 Operationer på många element boolean containsall(collection<?> c) boolean addall(collection<?> c) boolean removeall(collection<e> c) containsall testar om alla element i en viss samling innehåller alla element i en annan samling addall adderar alla element ur en samling till en annan removeall tar bort de element som ingår i den andra samlingen 11

12 Operationer på många element (forts) boolean retainall(collection<?> c) void clear() E[] toarray() retainall sparar endast de element som ingår i den andra samlingen clear tar bort alla element toarray Skapar en array med samma element 12

13 Iteratorer Tre operationer på Iterator<E> boolean hasnext(); E next(); void remove(); 13

14 Man kan skriva for(type x : c) { Lite om utökade for-loopar om c är av en typ som implementerar gränssnittet Iterator. Detta översätts till kod som använder iteratorer. (Jfr exemplet Simple.java) Denna notation kan även användas för iteration över arrayer. 14

15 Collections: Ett exempel import java.util.*; class A { public static void main(string args[]) { List<String> l = new ArrayList<String>(); for (int i=0; i<args.length; i++) l.add(args[i]); System.out.println(l); } } 15

16 Körexempel $ javac A.java $ java A en gång är ingen gång [en, gång, är, ingen, gång] $ 16

17 Exempel: LinkedList Program B.java 17

18 Exempel (med for-loopar) Program C.java 18

19 Gränssnittet Set Representerar mängder En samling föremål, utan inbördes ordning samma operationer som Collection Implementeras av HashSet och TreeSet (TreeSet implementerar även SortedSet) 19

20 Exempel: HashSet Program: D.java 20

21 Gränssnittet SortedSet En mängd som garanterar att dess iterator kommer att traversera mängden enligt elementens naturliga ordning, eller enligt en Comparator (en slags jämförelseoperator) som ges till konstruktorn, Alla element som sätts in i en sorterad mängd måste antingen implementera gränssnittet Comparable (eller accepteras av en given Comparator) 21

22 SortedSet<E>, operationer E first() Returnerar första elementet E last() Sista elementet SortedSet subset(e a, E b) returnerar en vy bestående av alla element i mängden från och med element a fram till (men exklusive) element b 22

23 Exempel: TreeSet public class E { public static void main(string args[]) { Set<String> l = new TreeSet<String>(); for (String s : args) l.add(s); } } System.out.println(l); 23

24 Körexempel TreeSet $ javac E.java $ java E bättre en fågel i handen än tio i skogen [bättre, en, fågel, handen, i, skogen, tio, än] $ java E ö åra älv [älv, åra, ö] $ 24

25 Kort mellanspel 1 Gränssnittet Comparator<E> definierar metoden public int compare(e o1, E o2) som jämför sina två argument och returnerar ett negativt tal om första argumentet är mindre än det andra noll om dom är lika ett positivt tal om första argumentet är större. 25

26 Kort mellanspel 2 Svensk sortering Klassen Locale representerar en geografisk, politisk eller kulturell region. Skriv new Locale(sv", se") för svenska språket (sv) och Sverige (se). Klassen Collator implementerar gränssnittet Comparator<Object>. Den har en statisk metod Collator getinstance(locale desiredlocale) som skapar en jämförelseoperator för en given region. 26

27 Exempel: Svensk sortering import java.util.*; import java.text.*; class F { public static void main(string args[]) { Collator collator = Collator.getInstance(new Locale("sv", "se")); SortedSet l = new TreeSet(collator); for (int i=0; i<args.length; i++) l.add(args[i]); System.out.println(l); }} 27

28 Körexempel: Svensk sortering $ javac F.java $ java E Ögren Vallander Vikström Wiklund Åberg Änglund [Vallander, Vikström, Wiklund, Änglund, Åberg, Ögren] $ java F Ögren Vallander Vikström Wiklund Åberg Änglund [Vallander, Wiklund, Vikström, Åberg, Änglund, Ögren] $ 28

29 Gränssnittet List<E> En sekvens av objekt där samma objekt kan förekomma flera gånger Operationer ur Collection E get(int index) E set(int index, E element) get returnerar element vid viss position set skriver över tidigare element vid viss position 29

30 List operationer ur Collection (forts) E add(int index, E element) int indexof(e element) ListIterator listiterator() add gör insättning vid viss position indexof position för första förekomst av elementet, 1 om elementet inte finns 30

31 Gränssnittet List (forts) ListIterator är en utökning av gränssnittet Iterator där man kan traversera framåt och bakåt modifiera sekvensen vid traversering plocka fram position för olika element 31

32 Gränssnittet List: implementationer List implementeras av ArrayList och LinkedList ArrayList Access via position är snabbt. Att skjuta in eller ta bort element (med add och remove) är dyrt. LinkedList Access via position är dyrt. 32

33 Gränssnittet Map<K,V> En avbildning, eller tabell Skansholm: Avbildningstabell Idé: En association mellan objekt. (K nycklar; V värden) Exempel: en telefonkatalog. Givet ett namn kan vi ta fram telefonnummer Implementeras av HashMap<K,V> och TreeMap<K, V> TreeMap<K, V> implementerar även SortedMap<K, V> 33

34 Gränssnittet Map<K, V>: operationer V put(k key, V value) V get(object key) V remove(object key) boolean containskey(object key) boolean containsvalue(object key) int size() boolean isempty() 34

35 Gränssnittet Map (forts) void putall(map<? extends K,? extends V> t) void clear() Set<K> keyset() Collection values() Set<V> entryset() Gränssnittet Map.Entry<K, V>: K getkey() V getvalue() V setvalue(v) 35

36 Hitta duplicerade ord med HashSet Program: FindDups.java, FindDups2.java 36

37 Autoboxing/unboxing, bakgrund För var och en av de åtta primitiva datatyperna finns en motsvarande klass, tex int Integer boolean Boolean Man kan konvertera mellan genom att skriva Integer x = new Integer(42); int y = x.intvalue(); 37

38 Autoboxing/unboxing i java 5.0 I Java 5.0 sker konverteringen automatiskt, man kan skriva Integer x = 42; int y = x; Man kan klara sig utan de primitiva typerna: Integer s = 0; for (Integer i = 0; i<10; i++) { s = s + i; Antagligen ej att rekommendera! (Varför inte?) 38

39 Räkna antal förekomster Program: Freq.java, Freq2.java 39

40 Kort mellanspel: Klassen StringBuffer Exempel: x = "a" "c" kan även skrivas x = new StringBuffer().append("a").append(4).append("c").toString() Den senare satsen skapar en ny (tom) stringbuffer, tar strängrepresentationen av varje operand i tur och ordning och konkatenerar till buffern. Vinst: Vi undviker att allokera ett antal temporära strängar. 40

41 Operationer på StringBuffer Ungefär som String, men tillåter uppdatering StringBuffer(String s) StringBuffer(int l) en buffer av längd l, som från början är tom StringBuffer append (boolean b) (Samma för alla andra primitiva datatyper) 41

42 StringBuffer Operationer (forts) StringBuffer insert (int i, boolean b) skjuter in stängen vid position i char charat(int i) void setcharat(int i, char c) Viktigaste operationer: append och insert (tar alla typer) 42

43 StringBuffer: Exempel Anta att z en strängbuffer med innehåll start". efter metodanropet z.append(le") innehåller z strängen startle". Om vi i stället gör metodanropet z.insert(4, le") kommer z att innehålla starlet". Varje strängbuffer har en viss kapacitet. Om kapaciteten överskrids, allokeras en större intern array. 43

44 Perm2.java Problem: Givet en fil med ord, hitta ord som är varandras permutationer. Lösning: Definiera en funktion alphabetize som tar en sträng och returnerar en sträng med bokstäverna i alfabetisk ordning. Bygg en tabell Map<String,List<String>> där strängarna läggs in enligt den alfabetiserade nyckeln. Två strängar med samma nyckel är varandras permutationer och hamnar på samma lista. 44

45 Sammanfattning Javas standardbibliotek definierar ett antal datastrukturer collections Tack vare interfacebegreppet kan vi använda de olika samlingarna på ett likformigt sätt Kraftfullt, och egentligen inte så komplicerat För att använda dem effektivt krävs nog att man tänker om en smula 45

Samlingar Collection classes

Samlingar Collection classes Samlingar Collection classes Sven-Olof Nyström Uppsala Universitet 17 mars 2005 Skansholm: Kapitel 9, 19 Se även Suns tutorial om Collections Olika slag av samlingar i Java Arrayer (Till exempel: int[])

Läs mer

Collection classes. Interface, första exempel. Interface (forts) Men först

Collection classes. Interface, första exempel. Interface (forts) Men först Collection Classes Koppling mellan abstraktioner på hög nivå och praktiska och effektiva implementationer av datastrukturer abstraktionerna: naturliga matematiska begrepp mängder, sekvenser avbildningar

Läs mer

Collection Classes. bjectorienterad programmering Sida 1

Collection Classes. bjectorienterad programmering Sida 1 Collection Classes Koppling mellan abstraktioner på hög nivå och praktiska och effektiva implementationer av datastrukturer abstraktionerna: naturliga matematiska begrepp mängder, sekvenser avbildningar

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016 Objektorienterad Programkonstruktion Föreläsning 9 30 nov 2016 Collections Ett samlingsnamn på objekt som innehåller en samling av andra objekt Det finns många olika sorters Collections, t.ex listor, träd,

Läs mer

Generiska typer. Java 5.0: Säkrare, snyggare, smidigare. Viktigaste utökningarna av språket: Autoboxing/unboxing, bakgrund.

Generiska typer. Java 5.0: Säkrare, snyggare, smidigare. Viktigaste utökningarna av språket: Autoboxing/unboxing, bakgrund. Java 5.0: Säkrare, snyggare, smidigare Sven-Olof Nyström Uppsala Universitet 7 april 2005 Generiska typer Exempel: Listl = new ArrayList>(); l.add(new Integer(42)); (Mer om detta senare.)

Läs mer

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder

Läs mer

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs Tentamen 2006-05-06 Objekt-orienterad programmering i Java, 5p distanskurs Uppsala Universitet Instutitionen för informationsteknologi Avdelningen för datalogi Kursansvarig: Sven-Olof Nyström May 2, 2007

Läs mer

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- Abstrakt datatyp Datatyp för en variabel Betecknar i ett programmeringsspråk den mängd värden variabeln får anta. T ex kan en variabel av typ boolean anta värdena true och

Läs mer

Interfacen Set och Map, hashtabeller

Interfacen Set och Map, hashtabeller Föreläsning 0 Innehåll Hashtabeller implementering, effektivitet Interfacen Set och Map ijava Interfacet Comparator Undervisningsmoment: föreläsning 0, övningsuppgifter 0-, lab 5 och 6 Avsnitt i läroboken:

Läs mer

Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs

Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs Tentamen 2006-0823 Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs Uppsala Universitet Instutitionen för informationsteknologi Avdelningen för datalogi Kursansvarig: Sven-Olof

Läs mer

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer Arrayer Samling av data Datastrukturer int[] minatelnummer = new int[30]; // allokering av tillräckligt // stort minnesutrymme Element refereras genom indexering ringa = minatelnummer[25]; // indexering

Läs mer

Länkade strukturer. (del 2)

Länkade strukturer. (del 2) Länkade strukturer (del 2) Översikt Abstraktion Dataabstraktion Inkapsling Gränssnitt (Interface) Abstrakta datatyper (ADT) Programmering tillämpningar och datastrukturer 2 Abstraktion Procedurell abstraktion

Läs mer

Föreläsning 10 Innehåll

Föreläsning 10 Innehåll Föreläsning 10 Innehåll Hashtabeller implementering, effektivitet Metoden hashcode i Java Abstrakta datatyperna mängd (eng. Set) och lexikon (eng. Map) Interfacen Set och Map i Java Undervisningsmoment:

Läs mer

Föreläsning 10 Innehåll. Diskutera. Hashtabeller. Hashfunktion. hashfunktion. hashkod (ett heltal)

Föreläsning 10 Innehåll. Diskutera. Hashtabeller. Hashfunktion. hashfunktion. hashkod (ett heltal) Föreläsning 0 Innehåll Diskutera Hashtabeller implementering, effektivitet Metoden hashcode i Java Abstrakta datatyperna mängd (eng. Set) och lexikon (eng. Map) Interfacen Set och Map ijava Undervisningsmoment:

Läs mer

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs LUNDS TEKNISKA HÖGSKOLA 1(3) Institutionen för datavetenskap Tentamen, EDAA01 Programmeringsteknik fördjupningskurs 2017 08 14, 8.00 13.00 Anvisningar: Denna tentamen består av 5 uppgifter. Preliminärt

Läs mer

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA01 Programmeringsteknik fördjupningskurs 2012 12 20, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 5 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 5 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 5 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Kort om javadoc Abstrakta datatyper Ordböcker/Mappar Listor Stackar

Läs mer

Diskutera. Hashfunktion

Diskutera. Hashfunktion Föreläsning 1 Innehåll Diskutera Hashtabeller implementering, effektivitet Metoden hashcode i Java Abstrakta datatyperna mängd (eng. Set) och lexikon (eng. Map) Interfacen Set och Map i Java Tidigare har

Läs mer

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Metoden clone() Skapa kopior av existerande objekt. Interface Cloneable Deep vs.

Läs mer

Föreläsning 11 Innehåll

Föreläsning 11 Innehåll Föreläsning 11 Innehåll Hashtabeller implementering, effektivitet Metoden hashcode i Java Abstrakta datatyperna mängd (eng. Set) och lexikon (eng. Map) Interfacen Set och Map i Java Datavetenskap (LTH)

Läs mer

Inlämningsuppgift och handledning

Inlämningsuppgift och handledning Inlämningsuppgift och handledning Inlämningsuppgiften redovisas i vecka 49/50. Hög tid att komma igång! Jourtider varje vecka (se http://cs.lth.se/edaa01ht/inlaemningsuppgift) Frågestunder på fredagluncher

Läs mer

Seminarium 3 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.

Seminarium 3 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist. Seminarium 3 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Java Collections Framework interface och klasser för samlingar av element interfacen Iterator och Iterable och foreach-sats

Läs mer

Seminarium 2 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.

Seminarium 2 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist. Seminarium 2 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Generik används för att få typsäkra datastrukturer Java Collections Framework Standardbibliotek med datastrukturer i

Läs mer

Generiska programenheter. Generiska programenheter Samlingar

Generiska programenheter. Generiska programenheter Samlingar Föreläsning 10 Generiska programenheter Samlingar 1 Generiska programenheter Från och med version 5.0 är det möjligt att skriva generiska programenheter i Java. generiska interface generiska klasser generiska

Läs mer

Inlämningsuppgift och handledning. Föreläsning 11 Innehåll. Diskutera. Hashtabeller

Inlämningsuppgift och handledning. Föreläsning 11 Innehåll. Diskutera. Hashtabeller Inlämningsuppgift och handledning Föreläsning 11 Innehåll Inlämningsuppgiften redovisas i vecka 49/50. Hög tid att komma igång! Jourtider varje vecka (se http://cs.lth.se/edaa01ht/inlaemningsuppgift) Frågestunder

Läs mer

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

Föreläsning 2. Länkad lista och iterator Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF

Läs mer

Objektorienterad Programkonstruktion

Objektorienterad Programkonstruktion Objektorienterad Programkonstruktion Föreläsning 9 Projektuppgift Collection, Iterator, Composite Christian Smith ccs@kth.se 1 Projektuppgift IM, skickar meddelanden mellan datorer En lite större labbuppgift,

Läs mer

Repetition av OOP- och Javabegrepp

Repetition av OOP- och Javabegrepp ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir

Läs mer

Repetition av OOP- och Javabegrepp

Repetition av OOP- och Javabegrepp ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir

Läs mer

Listor. Koffman & Wolfgang kapitel 2, avsnitt , och 2.9

Listor. Koffman & Wolfgang kapitel 2, avsnitt , och 2.9 Listor Koffman & Wolfgang kapitel 2, avsnitt 2.1 2.3, 2.5 2.6 och 2.9 Figur 2.1, sid 63 java.util.list, med dess implementeringar 2 List och primitiva typer En array kan innehålla primitiva typer: int[],

Läs mer

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

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

Läs mer

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet

Läs mer

Tentamen, EDAA30 Programmering i Java fortsättningskurs

Tentamen, EDAA30 Programmering i Java fortsättningskurs LUNDS TKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, DAA30 Programmering i Java fortsättningskurs 2017 01 09, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt

Läs mer

DAT043 - föreläsning 8

DAT043 - föreläsning 8 DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns

Läs mer

Föreläsning 2 Innehåll

Föreläsning 2 Innehåll Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga

Läs mer

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA01 Programmeringsteknik fördjupningskurs 2015 01 12, 14.00 19.00 Anvisningar: Denna tentamen består av 5 uppgifter. Preliminärt

Läs mer

Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki

Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga

Läs mer

Stackar, köer, iteratorer och paket

Stackar, köer, iteratorer och paket Stackar, köer, iteratorer och paket Programmering för språkteknologer 2 Sara Stymne 2013-09-18 Idag Paket Stackar och köer Array resp länkad struktur Iteratorer Javadoc Kommentarer lab 1 Bra att de flesta

Läs mer

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4 Avbildningar och hashtabeller Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4 1 2 Mängder i Java 3 Mängd-gränssnittet Set vs. List Mängder får endast innehålla unika element: Metoden.add(E) returnerar

Läs mer

Javas inbyggda datastrukturer

Javas inbyggda datastrukturer Javas inbyggda datastrukturer Java innehåller ett antal inbyggda datastrukturer. De är alla baserade på gränssnitten Collection och Map som finns i java.util. Detta är dokumenterat i Skansholm kapitel

Läs mer

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 TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar

Läs mer

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 TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar

Läs mer

Länkade strukturer, parametriserade typer och undantag

Länkade strukturer, parametriserade typer och undantag Länkade strukturer, parametriserade typer och undantag Programmering för språkteknologer 2 Sara Stymne 2013-09-18 Idag Parametriserade typer Listor och länkade strukturer Komplexitet i länkade strukturer

Läs mer

Föreläsning 1. Abstrakta datatyper, listor och effektivitet

Föreläsning 1. Abstrakta datatyper, listor och effektivitet Föreläsning 1 Abstrakta datatyper, listor och effektivitet Föreläsning 1 Datastrukturer Abstrakta DataTyper ADT Lista Lista och Java Collections Framework (ArrayList) Lista implementerad med en array Analys

Läs mer

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

Föreläsning 2. Länkad lista och iterator Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF

Läs mer

Föreläsning 4 Innehåll

Föreläsning 4 Innehåll Föreläsning 4 Innehåll Abstrakta datatypen lista Datastrukturen enkellänkad lista Nästlade klasser statiskt nästlade klasser inre klasser Listklasser i Java Implementera abstrakta datatyperna stack och

Läs mer

Föreläsning 9. Generiska programenheter Samlingar

Föreläsning 9. Generiska programenheter Samlingar Föreläsning 9 Generiska programenheter Samlingar Generiska programenheter Från och med version 5.0 är det möjligt att skriva generiska programenheter i Java. generiska interface generiska klasser generiska

Läs mer

Föreläsning 10. ADT:er och datastrukturer

Föreläsning 10. ADT:er och datastrukturer Föreläsning 10 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad

Läs mer

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 2 Datastrukturer (DAT037) Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037

Läs mer

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

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0.. Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private

Läs mer

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA01 Programmeringsteknik fördjupningskurs 2012 12 20, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt

Läs mer

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper. Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något

Läs mer

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

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num

Läs mer

Arrayer. results

Arrayer. results Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1

Läs mer

Föreläsning 12. Generiska programenheter Designmönstret Iterator Samlingar. Generiska programenheter

Föreläsning 12. Generiska programenheter Designmönstret Iterator Samlingar. Generiska programenheter Generiska programenheter Föreläsning 12 Generiska programenheter Designmönstret Iterator Samlingar Från och med version 5.0 är det möjligt att skriva generiska programenheter i Java: generiska interface

Läs mer

Föreläsning 10. Generiska programenheter. Generiska programenheter Samlingar

Föreläsning 10. Generiska programenheter. Generiska programenheter Samlingar Föreläsning 10 Generiska programenheter Samlingar Generiska programenheter Från och med version 5.0 är det möjligt att skriva generiska programenheter i Java: generiska interface generiska klasser generiska

Läs mer

Föreläsning 2 Innehåll

Föreläsning 2 Innehåll Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga

Läs mer

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

Föreläsning 2 Innehåll. Generiska klasser. Generik i Java. Varför generiska klasser Bakgrund

Föreläsning 2 Innehåll. Generiska klasser. Generik i Java. Varför generiska klasser Bakgrund Föreläsning 2 Innehåll Generiska klasser Javas samlingsklasser är generiska. Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element metoden equals En generisk

Läs mer

Övning vecka 5. Denna vecka ska vi titta pa samlingar, generics och designmönstren Decorator, Singleton och Iterator.

Övning vecka 5. Denna vecka ska vi titta pa samlingar, generics och designmönstren Decorator, Singleton och Iterator. Övning vecka 5. TDA550 - Objektorienterad programvaruutveckling IT, fk Denna vecka ska vi titta pa samlingar, generics och designmönstren Decorator, Singleton och Iterator. Uppgift 1 Kom ihåg att samlingar

Läs mer

Föreläsning 8. Mängd, Avbildning, Hashtabell

Föreläsning 8. Mängd, Avbildning, Hashtabell Föreläsning 8 Mängd, Avbildning, Hashtabell Föreläsning 8 Mängd (Set) Avbildning (Map) Hashtabeller Hashkoder Öppen adressering Länkning Implementering Mängd En mängd är en samling som inte innehåller

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

17.9 Funktioner för avbildningstabeller

17.9 Funktioner för avbildningstabeller 17. Containerklasser l.setopaque(true); // ogenomskinlig bakgrund String fname = p.getproperty("fontname", "Serif"); String fstyle = p.getproperty("fontstyle", "PLAIN"); // översätt stilen till en heltalskonstant

Läs mer

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2 Övning vecka 6. TDA550 - Objektorienterad programvaruutveckling IT, fk Denna vecka ska vi titta på undantag, testning, generiska enheter, samlingar och designmönstret Iterator. Uppgift 1 Exceptions a)

Läs mer

Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki

Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga

Läs mer

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning. Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer

Läs mer

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 2 Datastrukturer (DAT037) Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet

Läs mer

Arrayer (fält)

Arrayer (fält) Arrayer (fält) 1 Vad kommer vi att ta upp om arrayer? Deklarera och initiera arrayen Lägga till i arrayen Ta ut på indexposition Ta reda på arrayens längd Sortera arrayen Söka igenom arrayen Loopa igenom

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning XII: Interfaces, Enums, Generics, Collections Links for: interfaces, enums, generics, collections Ahmed Rezine IDA, Linköpings Universitet Hösttermin

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Outline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine.

Outline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine. Outline Objektorienterad Programmering (TDDC77) Föreläsning XIII: Kollektioner (kont.) [hashing, iteratorer], Undantag Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Collection Iterable Undantag

Läs mer

Programmering fortsättningskurs

Programmering fortsättningskurs Programmering fortsättningskurs Philip Larsson 2013 03 09 Innehåll 1 Träd 1 1.1 Binära träd........................................ 1 1.2 Strikt binärt träd..................................... 1 1.3 Binärt

Läs mer

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Sammansatta datatyper Generics: Parametrisk polymorfism

Sammansatta datatyper Generics: Parametrisk polymorfism jonas.kvarnstrom@liu.se 2017 Sammansatta datatyper Generics: Parametrisk polymorfism Listor och arrayer 2 Enligt TDDD73: Många språk har både listor och arrayer även Java och Python! Exakta definitioner

Läs mer

Föreläsning 8. Mängd, Avbildning, Hashtabell

Föreläsning 8. Mängd, Avbildning, Hashtabell Föreläsning 8 Mängd, Avbildning, Hashtabell Föreläsning 8 Mängd (Set) Avbildning (Map) Hashtabeller Hashkoder Öppen adressering Länkning Effektivitet och minneskrav Implementering Läsanvisning och uppgifter

Läs mer

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

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

Uno Holmer, Chalmers, :28 Uno Holmer, Chalmers, :28

Uno Holmer, Chalmers, :28  Uno Holmer, Chalmers, :28 ADT:er, datastrukturer och standardklasser i Java Föreläsning 2 (Weiss kap. 6) Datatyp, abstrakt datatyp, datastruktur Några vanliga datastrukturer Tillämpningar Tidskomplexitet Standardklasser Standardalgoritmer

Läs mer

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine Objektorienterad Programmering (TDDC77) Föreläsning XII: Interfaces, Enums,, Collections Links for: interfaces, enums, generics, collections Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Abstrakta

Läs mer

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

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning XIII: Kollektioner (kont.) [hashing, iteratorer], Undantag Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Collection Iterable Hashing

Läs mer

Föreläsning 1 Datastrukturer (DAT037)

Föreläsning 1 Datastrukturer (DAT037) Föreläsning 1 Datastrukturer (DAT037) Fredrik Lindblad 1 30 oktober 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Föreläsning 14 Innehåll

Föreläsning 14 Innehåll Föreläsning 14 Innehåll Abstrakta datatyper, datastrukturer Att jämföra objekt övriga moment i kursen Om tentamen Skriftlig tentamen både programmeringsuppgifter och teoriuppgifter Hitta fel i fingerade

Läs mer

Den som bara har en hammare tror att alla problem är spikar

Den som bara har en hammare tror att alla problem är spikar Introduktion Föreläsning (Weiss kap. -4) Många begrepp blir det Introduktion till kursen Exempel: Datastrukturen mängd Generiska Den som bara har en hammare tror att alla problem är spikar Vilken

Läs mer

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 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Föreläsning 4 Kö Föreläsning 4 ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista ADT Kö Grundprinciper: En kö fungerar som en kö. Man fyller på den längst bak och

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

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

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Idag - Hashtabeller - Flerdimensionella arrayer (2D) 2 Repetition -

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

Algoritmer och datastrukturer 2012, fo rela sning 8

Algoritmer och datastrukturer 2012, fo rela sning 8 lgoritmer och datastrukturer 01, fo rela sning 8 Komplexitet för binära sökträd De viktigaste operationerna på binära sökträd är insert, find och remove Tiden det tar att utföra en operation bestäms till

Läs mer

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDAA01 Programmeringsteknik fördjupningskurs 2014 03 10, 8.00 13.00 Anvisningar: Denna tentamen består av 5 uppgifter. Preliminärt

Läs mer

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

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om? Algoritmer och datastrukturer Allmänt om kursen Kort javagrund repetition - Klasser, metoder, objekt och referensvariabler, - Hierarkiska klass strukturer - Arrayer och arrayer av objekt - Collection ramverket

Läs mer

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

Programmering för språkteknologer II, HT2014. Rum Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ 1 Idag - Parametriserade

Läs mer

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList Föreläsning 8 Klassen String Mer om fält Klassen ArrayList Standardklassen String Texter handhas i Java med standardklassen String. Ett objekt av klassen String består av en följd av tecken, dvs element

Läs mer

I ett program hantera man ofta samlingar av objekt av samma typ.

I ett program hantera man ofta samlingar av objekt av samma typ. Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner

Läs mer

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 DSV SU/KTH sid 1 (7) PROG2 PROG2 Tenta 2014-01-17 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 Tentan består av tre uppgifter. Max poäng är 38. För betyget E (godkänd) krävs minst

Läs mer

Generisk klass med typparameter Inre klass - ListIterator

Generisk klass med typparameter Inre klass - ListIterator Objektorienterad programmeringsmetodik Generics, clone Generics Återanvändning Ännu ett sätt att lösa ett gammalt problem: skriva så lite kod som möjligt Vi vill ha metoder som fungerar på olika klasser

Läs mer

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid: Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:

Läs mer