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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 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 Java, exempelvis ArrayList, LinkedList, etc. interfacen Iterator och Iterable och foreach-sats i Java - används för att traversera genom en samling element Jämföra objekt metoden equals, interfacet Comparable Efter detta seminarium ska ni kunna lösa uppgifterna i kapitel 3 i övningshäftet. Typosäkerhet utan generik! I den gamla modellen kunde man skriva: mylist.add(new Integer(1)); mylist.add(new Integer(2)); mylist.add(new Person( Kalle )); Om avsikten är att listan ska innehålla tal, har vi gjort fel på rad 3. Kompilatorn kan inte upptäcka detta koden är korrekt, både Integer och Person är subklasser till Object. PFK (Seminarium 2 JCF) HT / 38 Generik i Java PFK (Seminarium 2 JCF) HT / 38 Exempel på en generisk klass java.util.arraylist Kompilatorn kommer att upptäcka typfel. Ex: ArrayList<Integer> mylist = new ArrayList<Integer>(); mylist.add(new Person("Kalle")); ger nu kompileringsfel, mylist får enligt sin deklaration endast innehålla objekt av typen Integer. Utdrag ur den generiska klassen java.util.arraylist: public class ArrayList<E> { public ArrayList() { public boolean add(e x) { public void add(int index, E x) { public E get(int index) { Alla add-metoder har inparameter av typen E. Därför kan enbart objekt av klassen E (eller subklasser till denna) sättas in i listan. PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

2 Implementering av generisk klass Generisk klass med flera typparametrar Implementering Java 1.4 public class Container { private Object item; public Container(Object x) { item = x; public Object get() { return item; Fr o m Java 5.0 generisk klass public class Container<E> { private E item; public Container(E x) { item = x; public E getitem() { return item; public class Pair<K, V> { private K key; private V value; public Pair(K key, V value) { this.key = key; this.value = value; public V getvalue() { return value; public void set(object x) { item = x; public void setitem(e x) { item = x; public void setvalue(v val) { value = val; PFK (Seminarium 2 JCF) HT / 38 Generisk klass med flera typparametrar Användning PFK (Seminarium 2 JCF) HT / 38 Generiska interface Även interface kan vara generiska. Ex: Exempel: Pair<String, Integer> pair = new Pair<String, Integer>("June", 30); int nbrdays = pair.getvalue(); public interface Set<E> { boolean add(e x); int size(); boolean contains(object x); PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

3 Generik syntax Deklaration av parametriserade (generiska) klasser/interface: public class Set<E> { public interface Comparable<T> public class Pair<K,V> Klassen/interfacet har en parameterlista som omges av tecknen < och >. En parameter namnges med en typvariabel (markeras ovan) som kan vara en godtycklig identifierare. Om det är flera parametrar används komma som skiljetecken. PFK (Seminarium 2 JCF) HT / 38 Restriktioner för typparametrar och typvariabler Parameter till generisk klass kan inte vara primitiv typ: SomeClass<int> c = // Går inte! Typvariabler kan inte användas för att skapa objekt: Generik syntax I generiska klasser/interface kan typparametrarna användas för att deklarera attribut, variabler, Ex: public class Container<E> { private E item; public Container(E x){ this.item = x; public E getitem()){ return item; Man kallar ofta E för typvariabel när den används så här. PFK (Seminarium 2 JCF) HT / 38 Generisk klass Övning generisk klass Övning public class ArrayCollection<E> { private E[] thecollection = (E[]) new Object[10]; private int size = 0; public class SomeClass<E> { public void p() { E x = new E(); // Fel! Typparametrar kan inte användas för att överlagra metoder: public class MyClass<T,U> { public void p(t x) { public void p(u x) { // Fel! public boolean add(e x) { if (size == thecollection.length) { // Dubblera arrayn thecollection[size] = x; size++; return true; public boolean contains(object x) { // ÖVNING: Implementera PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

4 Typparametrar med begränsningar JCF Java Collections Framework Ibland behöver man ange begränsning på typparmetern: public class ASortedCollection<E extends Comparable<E>> <E extends T> betyder: E måste vara subklass till T om T är en klass. Det är också tillåtet att E = T. E måste implementera interfacet T om T är ett interface. I exemplet ovan anger vi alltså att E måste vara en typ som implementerar interfacet Comparable<E>. Vi kan därmed använda metoden compareto på objekt av typen E i implementeringen av ASortedCollection. Är en hierarki av interface, abstrakta klasser och konkreta klasser för samlingar av element. Finns i paketet java.util. Basen i hierarkin är ett interface Collection: interface Collection<E> { boolean add(e x); boolean contains(object x); boolean remove(object x); boolean isempty(); int size(); interfacen Iterator och Iterable och foreach-sats i Java - används för att traversera genom en samling element PFK (Seminarium 2 JCF) HT / 38 JCF interface hierarki PFK (Seminarium 2 JCF) HT / 38 JCF interface hierarki Queue Collection List Set SortedSet Map SortedMap Dokumentation På Javas hemsida (länk finns på kursens hemsida) finns dokumentation av Javas standardklasser. Där finns även tutorials, bl.a. om Javas Collection-klasser. PFK (Seminarium 2 JCF) HT / 38 Collection en samling av element Queue en samling av element som utgör en kö List en samling element där positionering är möjlig (första, sista, element på plats i, ) Set en samling element där dubbletter är förbjudna SortedSet som Set men med krav att elementen går att jämföra Map en samling av element, där varje element har en en nyckel och ett värde (jfr. lexikon) SortedMap som Map men med krav att nycklarna går att jämföra PFK (Seminarium 2 JCF) HT / 38

5 JCF några klasser Iteratorer Interface Queue List Set SortedSet Map SortedMap Implementering LinkedList, PriorityQueue ArrayList, LinkedList HashSet TreeSet HahsMap TreeMap Antag att vi lagrar ett antal personer i en lista (eller i någon annan samlingsklass): ArrayList<Person> plist = new ArrayList<Person>(); // här sätts Person-objekt in i samligen Hur ska vi göra för iterera genom samligen och behandla alla personerna (t.ex. skriva ut alla personernas namn)? PFK (Seminarium 2 JCF) HT / 38 Interfacet Iterable<E> PFK (Seminarium 2 JCF) HT / 38 Interfacet Iterator<E> I Java finns följande interface: public interface Iterable<E> { /** Returns an iterator over a set of elements of type E */ Iterator<E> iterator(); Interfacet Collection ärver interfacet Iterable: En instans av en klass som implementerar interfacet Iterator används för att iterera över alla element i en samling. public interface Iterator<E> { /** Returns true if the iteration has more elements. */ boolean hasnext(); /** Returns the next element in the iteration. */ E next(); public interface Collection<E> extends Iterable<E> Alla klasser som implementerar Collection måste alltså implementera metoden iterator(). /** Removes from the underlying collection the last element returned by the iterator (optional). */ void remove(); PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

6 JCF interface hierarki med Iterable<E> och Iterator<E> Användning av iterator Exempel Iterable Här används en iterator för att traversa en lista: iterator() Collection Iterator hasnext() next() remove() Map SortedMap ArrayList<Person> plist = new ArrayList<Person>(); // här sätts Person-objekt in i samlingen Iterator<Person> itr = plist.iterator(); while (itr.hasnext()) { Person p = itr.next(); // behandla p Queue List Set SortedSet Lägg märke till hur man skaffar sig en iterator genom att anropa metoden iterator. PFK (Seminarium 2 JCF) HT / 38 Metoden iterator() Exempel på collection-klass med metoden iterator PFK (Seminarium 2 JCF) HT / 38 Implementering av interfacet Iterator<E> Exempel: Klassen ArrayIterator Nu ska vi implementera en iterator! public class ArrayCollection<E> implements Collection<E> { private E[] thecollection; private int size; impl av konstruktor, add, public Iterator<E> iterator() return new ArrayIterator(); private class ArrayIterator implements Iterator<E> {. implementering på nästa bild private class ArrayIterator implements Iterator<E> { private int pos; private ArrayIterator() { pos = 0; public boolean hasnext() { return pos < size; PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

7 Implementering av interfacet Iterator<E> Exempel: Klassen ArrayIterator, forts Implementering av interfacet Iterator<E> Inre klass public E next() { if (hasnext()) { E item = thecollection[pos]; pos++; return item; else { throw new NoSuchElementException(); public void remove() { throw new UnsupportedOperationException(); Den klass som implementerar interfacet Iterator kan vara inre klass i den klass som representerar samlingen. En inre klass har tillgång till alla attribut i den omgivande klassen det utnyttjas t.ex. i operationen next. Den kan vara privat, och ha en en privat konstruktor, eftersom det bara är den omgivande klassen som skapar instanser. Metoderna hasnext, måste däremot vara publika eftersom interfacet Iterator föreskriver detta. PFK (Seminarium 2 JCF) HT / 38 Implementering av interfacet Iterator<E> Kommentar PFK (Seminarium 2 JCF) HT / 38 foreach-sats i Java Exempel Implementeringen som visats här är förenklad: Iteratorer har enligt sitt kontrakt inte till uppgift att klara av att samlingen modifieras mellan anrop av next(). En korrekt iterator-implementering måste upptäcka detta och generera en exception om samlingen modifieras. ArrayList<Person> plist = new ArrayList<Person>(); // här sätts Person-objekt in samlingen for (Person p : plist) { // behandla p Ett sätt att enkelt iterera över samlingar. Man slipper att explicit använda en iterator. for (Person p : plist) kan läsas som för varje p i plist. Kan användas för objekt av klasser som implementerar Iterable och för vektorer. PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

8 foreach-sats Vektorer Kan också användas för att iterera över elementen i en vektor. Ex: En metod som skriver ut namn på personer som lagrats i en vektor av typ Person[]: public void print(person[] a) { for (Person p : a) { System.out.println(p.getName()); Iterator foreach-sats Övning Övning Antag att vi har följande lista: LinkedList<Integer> list = new LinkedList<Integer>(); list.add(25); list.add(42); Summera talen i list genom att använda iterator() resp. foreach-sats. PFK (Seminarium 2 JCF) HT / 38 foreach-sats Begränsningar PFK (Seminarium 2 JCF) HT / 38 Söka efter objekt i en lista Följande klass beskriver en person: Foreach-sats kan inte användas när man explicit behöver tillgång till iteratorn i koden. Exempel: Tag bort alla personer som matchar x ur en ArrayList<Person> plist: Iterator<Person> itr = plist.iterator(); while (itr.hasnext()) { if (itr.next().equals(x)) { itr.remove(); Här behövs iteratorn för att kunna ta bort element. public class Person { private String name; private int idnbr; public Person (String name, int idnbr) { this.name = name; this.idnbr = idnbr; Vad skrivs ut när följande rader exekveras? ArrayList<Person> list = new ArrayList<Person>(); list.add(new Person("Kalle", 1)); list.add(new Person("Kajsa", 2)); System.out.println(list.contains(new Person("Kalle", 1))); PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

9 Jämföra likhet Metoden equals Omdefiniera equals med instanceof Metoden equals används för att jämföra om två objekt är lika: Person p1 = ; Person p2 = ; if (p1.equals(p2)) { Metoden equals finns i superklassen Object. Om metoden inte skuggas så jämförs referenser, dvs, om det är samma objekt. Om man istället vill att innehållet inuti objekten ska jämföras måste man omdefiniera (skugga) equals. Exempel: Om man vill att två personer ska anses lika när de har samma id-nummer måste man omdefiniera equals i klassen Person. public boolean equals(object obj) { if (obj instanceof Person) { return idnbr == ((Person) obj).idnbr; else { return false; Observera att parametern till equals måste vara av typ Object, annars blir det inte skuggning. Därför måste också typomvandling till Person ske när man ska använda obj:s idnbr. Uttrycket obj instanceof Person returnerar true om obj:s typ är Person eller någon subklass till Person. Uttrycket obj instanceof Person returnerar false om obj har värdet null. PFK (Seminarium 2 JCF) HT / 38 Interfacet Comparable Specifikation PFK (Seminarium 2 JCF) HT / 38 Implementering av interfacet Comparable Exempel I Java finns ett generiskt interface, Comparable<T>: public interface Comparable<T> { /** * Compares this object with the specified object for order. * Returns a negative integer, zero, or a positive integer as * this object is less than, equal to, or greater than the * specified object. */ public int compareto(t x); Objekt av klasser som implementerar detta interface går att jämföra med varandra och kan t.ex. sorteras. public class Person implements Comparable<Person> { private String name; private int idnbr; public int compareto(person x) { return idnbr - x.idnbr; public boolean equals(object obj) { if (obj instanceof Person) { return compareto((person) obj) == 0; else { return false; PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

10 Jämföra likhet Metoderna compareto och equals Interfacet Comparable innehåller bara metoden compareto. Men för klasser som implementerar interfacet Comparable finns det två sätt att jämföra avseende likhet: Person p1 = ; Person p2 = ; if (p1.compareto(p2) == 0) { if (p1.equals(p2)) { Implementering av interfacet Comparable Övning Övning Ändra klassen Person så att den implementerar interfacet Comparable. Jämförelsen av Person-objekt ska göras med avseende på namnet. public class Person { private String name; private int idnbr; Båda sätten att jämföra ska ge konsistenta resultat. Därför bör metoden equals omdefinieras i klasser som implementerar Comparable. PFK (Seminarium 2 JCF) HT / 38 PFK (Seminarium 2 JCF) HT / 38

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

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

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

Föreläsning 1-2. Språkkonstruktioner i Java. Introduktion till delar av Javas klassbibliotek

Föreläsning 1-2. Språkkonstruktioner i Java. Introduktion till delar av Javas klassbibliotek Föreläsning 1-2 Innehåll Språkkonstruktioner i Java Interface Exceptions Introduktion till generik Autoboxing - och unboxing Introduktion till delar av Javas klassbibliotek Java Collections Framework interface

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

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

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

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

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

Föreläsning 9 Innehåll

Föreläsning 9 Innehåll Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon

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

EDAA01 Programmeringsteknik - fördjupningskurs

EDAA01 Programmeringsteknik - fördjupningskurs EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 1+2 (Ges även lp 3) 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa01ht Förkunskapskrav: Godkänd på de obligatoriska momenten i EDAA45 Programmering,

Läs mer

Föreläsning 1-2 Innehåll. EDAA01 Programmeringsteknik - fördjupningskurs. Detta kan du... Förkunskaper

Föreläsning 1-2 Innehåll. EDAA01 Programmeringsteknik - fördjupningskurs. Detta kan du... Förkunskaper EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 1+2 (Ges även lp 3) 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa01ht Förkunskapskrav: Godkänd på de obligatoriska momenten i EDAA45 Programmering,

Läs mer

Begreppet subtyp/supertyp i Java. Mera om generik. Generik och arv. Generik och arv. Innehåll

Begreppet subtyp/supertyp i Java. Mera om generik. Generik och arv. Generik och arv. Innehåll Mera om generik Begreppet subtyp/supertyp i Java Innehåll Wildcards Vektorer och generik Supertyper för en viss klass C är alla klasser från vilka C ärver och alla interface som klassen implementerar.

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

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Listor, stackar, köer Abstrakta datatypen lista listklasser i Java, egen implementering Datastrukturen enkellänkad lista Jämföra element metoden equals, interfacet Comparable Abstrakta

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

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 1-2 Innehåll. EDAA01 Programmeringsteknik - fördjupningskurs. Detta kan du... Förkunskaper

Föreläsning 1-2 Innehåll. EDAA01 Programmeringsteknik - fördjupningskurs. Detta kan du... Förkunskaper EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 3 (Ges även lp 1+2) 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa01vt Förkunskapskrav: Godkänd på de obligatoriska momenten i EDAA45 Programmering,

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

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

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

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

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

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

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

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

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

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

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

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

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

Ö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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Laboration 2 Datastrukturer En liten uppgift Frågor 1 Laboration 2 - Datastrukturer Länkade datastrukturer Stack Kö (En. Queue) Lista

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

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

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

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition Seminarium 4 Köer och Stackar Innehåll ADT:erna Kö och Stack Definitioner Operationer Exempel på användning Givna klasser i Java Interfacet Queue Klassen Stack Klassen LinkedList Klassen PriorityQueue

Läs mer

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel Föreläsning 3 Innehåll Generiska klasser Implementera generiska klasser Exceptions Dokumentationekommentarer javadoc Enhetstestning - junit Man kan deklarera en eller flera typparametrar när man definierar

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

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

Föreläsning 3 Innehåll

Föreläsning 3 Innehåll Föreläsning 3 Innehåll Jämföra element interfacen Comparable och och Comparator Implementera generiska klasser Exceptions Dokumentationekommentarer javadoc Enhetstestning - junit Datavetenskap (LTH) Föreläsning

Läs mer

Diskutera Sortera objekt

Diskutera Sortera objekt Föreläsning 3 Innehåll Diskutera Sortera objekt Metoden sort är en statisk metod i klassen Arrays. Den sorterar vektorn som skickas med som argument. Jämföra element interfacen Comparable och och Comparator

Läs mer

Samlingar Collection classes

Samlingar Collection classes Samlingar Collection classes Sven-Olof Nyström Uppsala Universitet 17 juni 2005 Skansholm: Kapitel 9, 19 Se även Suns tutorial om Collections 1 Motivation: Vill samla olika datastrukturer för att representera

Läs mer

Föreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition

Föreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition Föreläsning Innehåll Diskutera Binära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, AVL-träd Jämföra objekt interfacet Comparable Interfacet

Läs mer

Föreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd

Föreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd Föreläsning Innehåll Diskutera Binära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, AVL-träd Jämföra objekt interfacet Comparable Interfacet

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

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

Föreläsning 10 Innehåll

Föreläsning 10 Innehåll Föreläsning 10 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, AVL-träd Jämföra objekt interfacet Comparable Interfacet

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 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

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

Ö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

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

Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs 2013 12 19 1. a) En samling element där insättning och borttagning

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

Objektorienterad programmering med Java, Generics

Objektorienterad programmering med Java, Generics Generics i Java Generic: allmän, genersisk. På menyn på en asiatisk restaurang: Denna rätt serveras med valfritt kött, fisk eller skalddjur Bakgrund Generics i Java ger oss att skriva kod, klasser och

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

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

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

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

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

Föreläsning 9. Generiska enheter Inre klasser Anonyma klasser Kloning TDA550 Objektorienterad programmering, fortsättningskurs Föreläsning 9 Generiska enheter Inre klasser Anonyma klasser Kloning Objektorienterad programmering fk 1 Föreläsning 9 Generiska programenheter

Läs mer

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning Generiska klasser Undantag Interface Nästlade klasser 1 Problem:

Läs mer

Uno Holmer, Chalmers, :17 Uno Holmer, Chalmers, :17

Uno Holmer, Chalmers, :17   Uno Holmer, Chalmers, :17 Föreläsning 3 Generiska klasser och metoder (Weiss kap. 4.7-8, Skansholm 17.1) Generiska klassmetoder Råa typer Typbegränsningsuttryck Jämförelseklasser Definition av generisk klass

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

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

Saker du ska kunna Föreläsning 13 & 14

Saker du ska kunna Föreläsning 13 & 14 Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering

Läs mer

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts Föreläsning 11-12 Innehåll Hantera många element Tidigare har vi använt vektorer för att lagra många element av samma tp. Eempel: Klassen ArraList Inläsning från tetfil, utskrift på tetfil int[] nbrs

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

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

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

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

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

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

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 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

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

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

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5 TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5 Daniel Wetterbro 23 november 2009 Sammanfattning Denna vecka ska vi titta på I/O, samlingar och generics. Övningarna är graderade

Läs mer

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19 1. a) En samling element där insättning och borttagning

Läs mer

Seminarieövningar, Algoritmer och datastrukturer

Seminarieövningar, Algoritmer och datastrukturer LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Algoritmer och datastrukturer, EDA690 Seminarieövningar, Algoritmer och datastrukturer Seminarieövningarna i kursen Algoritmer och datastrukturer

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande: Föreläsning 7 Innehåll Rekursion Rekursivt tänkande: Hur många år fyller du? Ett år mer än förra året! Rekursion Rekursiv problemlösning Binärsökning Generiska metoder Rekursiv problemlösning: Dela upp

Läs mer

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

Tentamen Programmeringsteknik II Inledning. Anmälningskod: Tentamen Programmeringsteknik II 2016-01-11 Inledning I bilagan finns ett antal mer eller mindre ofullständiga klasser. Några ingår i en hierarki: List, SortedList, SplayList och ListSet enligt vidstående

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 11 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Uppräkningar (enum) Klasshierarki Generics Kollektioner Iterable Uppräkningar(enum)

Läs mer

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

Generiska datatyper. Parametrisk Polymorfism: Generics. Generisk lista. Utvikning: Typer Generiska datatyper Parametrisk Polymorfism: Generics Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 9 december 2010 Hittills har vi sett att klasser och interface definierar nya typer som kan användas

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 Läsanvisningar och uppgifter

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter 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 Läsanvisningar och uppgifter ADT Kö Grundprinciper: En kö fungerar som en kö. Man

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

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering! Samlingar Vi kommer att behöva hantera samlingar av objekt - Har oftast använd Array (fält) - Bra om

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

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 interface, motivation och bakgrund Antag att vi gör en generell listklass: public class List { protected static class ListNode { public

Läs mer

Generiska konstruktioner. Kursbokens kapitel 13

Generiska konstruktioner. Kursbokens kapitel 13 Generiska konstruktioner Kursbokens kapitel 13 1 Vad är en generisk konstruktion? Generisk står för; allmän eller generell En generisk konstruktion kan användas för olika typer av data Med hjälp av templates

Läs mer

Programmeringsteknik - fördjupningskurs

Programmeringsteknik - fördjupningskurs Programmeringsteknik - fördjupningskurs David Karlsson 11 april 2012 1 Innehåll 1 Objektorientering 4 2 Kommentering av koden 6 3 Typer av fel 6 3.1 Exception..........................................

Läs mer

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,

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

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