objektsammlungen - uni-saarland.de · objektsammlungen andreas zeller programmieren 2 andreas...
TRANSCRIPT
![Page 1: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/1.jpg)
ObjektsammlungenAndreas Zeller
Programmieren 2Andreas Zeller
Konzepte(Wiederholung vom Dienstag)
• Abstraktion
• Modularisierung
• Klassen definieren Typen
• Klassendiagramm
• Objektdiagramm
• Objektreferenz
• Primitiver Typ
• Objekterzeugung
• Überladen
• Interner Aufruf
• Externer Aufruf
• Debugger
Vgl. Kapitel 4 im BlueJ-Buch.Bis Kapitel 6 bleiben wir weiter dicht am BlueJ-Buch, das somit die eigentliche Referenz bildet.
1
2
3
![Page 2: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/2.jpg)
• Die Vorlesung ist…
Meinungen
zu langsam 5zu schnell 0
Hörer
52%
24%
24%
Anfänger Schein Prog1 Unbekannt
Programmierer
0
50
100
Beliebige Leistungsmetrik
100
10
Schlechteste Beste
4
5
6
![Page 3: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/3.jpg)
Die VorlesungSc
hwie
rigk
eit
0
5
10
Beliebige Leistungsmetrik
Schlechteste Beste
heute
Der kleine Unterschied
// 25121xx
import java.io.*;
public String getBye() { return "Bye!";}
public String getHello() { return "Tach "+ getName()+ "!";}
Der kleine Unterschied
// 25079xx
import java.io.*;
public String getBye() { return "Adieu!";}
public String getHello() { return "Tach "+ getName()+ "!";}
7
8
9
![Page 4: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/4.jpg)
Benotung
35%
25%
20%
15%
5%
GreeterVendingMachineProjekt 3Projekt 4Projekt 5
Dauer
4 Wochen
3 Wochen
3 Wochen
2 Wochen
1 Wochen
GreeterVendingMachineProjekt 3Projekt 4Projekt 5
Die Projekte
Schw
ieri
gkei
t
0
5
10
Beliebige Leistungsmetrik
Schlechteste Beste
heute
10
11
12
![Page 5: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/5.jpg)
ObjektsammlungenAndreas Zeller
Sammlungen in ML
Listen [1, 2, 3]Tupel (1, 2)Vektoren Vector.sub(v, i)Mengen set[1, 2, 3]
Sammlungen in JavaAbstractCollection • AbstractList • AbstractQueue • AbstractSequentialList • AbstractSet • ArrayBlockingQueue • ArrayList • AttributeList • BeanContextServicesSupport • BeanContextSupport • ConcurrentLinkedQueue • CopyOnWriteArrayList • CopyOnWriteArraySet • DelayQueue • EnumSet • HashSet • JobStateReasons • LinkedBlockingQueue • LinkedHashSet • LinkedList • PriorityBlockingQueue • PriorityQueue • RoleList • RoleUnresolvedList • Stack • SynchronousQueue • TreeSet • Vector
Vgl. Kapitel 4 im BlueJ-Buch.Bis Kapitel 6 bleiben wir weiter dicht am BlueJ-Buch, das somit die eigentliche Referenz bildet.13
14
29 Stück
15
![Page 6: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/6.jpg)
04/26/2007 10:33 PMCollection (Java 2 Platform SE 5.0)
Page 1 of 10http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html
Overview Package Class Use Tree Deprecated Index Help JavaTM 2 PlatformStandard Ed. 5.0 PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
java.util
Interface Collection<E>
All Superinterfaces:Iterable<E>
All Known Subinterfaces:BeanContext, BeanContextServices, BlockingQueue<E>, List<E>, Queue<E>, Set<E>,SortedSet<E>
All Known Implementing Classes:AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList, AbstractSet,ArrayBlockingQueue, ArrayList, AttributeList, BeanContextServicesSupport,BeanContextSupport, ConcurrentLinkedQueue, CopyOnWriteArrayList, CopyOnWriteArraySet,DelayQueue, EnumSet, HashSet, JobStateReasons, LinkedBlockingQueue, LinkedHashSet,LinkedList, PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, Stack,SynchronousQueue, TreeSet, Vector
public interface Collection<E>
extends Iterable<E>
The root interface in the collection hierarchy. A collection represents a group of objects, known as itselements. Some collections allow duplicate elements and others do not. Some are ordered and othersunordered. The JDK does not provide any direct implementations of this interface: it providesimplementations of more specific subinterfaces like Set and List. This interface is typically used to passcollections around and manipulate them where maximum generality is desired.
Bags or multisets (unordered collections that may contain duplicate elements) should implement thisinterface directly.
All general-purpose Collection implementation classes (which typically implement Collectionindirectly through one of its subinterfaces) should provide two "standard" constructors: a void (noarguments) constructor, which creates an empty collection, and a constructor with a single argument oftype Collection, which creates a new collection with the same elements as its argument. In effect, thelatter constructor allows the user to copy any collection, producing an equivalent collection of thedesired implementation type. There is no way to enforce this convention (as interfaces cannot containconstructors) but all of the general-purpose Collection implementations in the Java platform librariescomply.
The "destructive" methods contained in this interface, that is, the methods that modify the collection onwhich they operate, are specified to throw UnsupportedOperationException if this collection does notsupport the operation. If this is the case, these methods may, but are not required to, throw anUnsupportedOperationException if the invocation would have no effect on the collection. Forexample, invoking the addAll(Collection) method on an unmodifiable collection may, but is not
Sammlungen in JavaAbstractCollection • AbstractList • AbstractQueue • AbstractSequentialList • AbstractSet • ArrayBlockingQueue • ArrayList • AttributeList • BeanContextServicesSupport • BeanContextSupport • ConcurrentLinkedQueue • CopyOnWriteArrayList • CopyOnWriteArraySet • DelayQueue • EnumSet • HashSet • JobStateReasons • LinkedBlockingQueue • LinkedHashSet • LinkedList • PriorityBlockingQueue • PriorityQueue • RoleList • RoleUnresolvedList • Stack • SynchronousQueue • TreeSet • Vector
Sammlungen in JavaAbstractCollection • AbstractList • AbstractQueue • AbstractSequentialList • AbstractSet • ArrayBlockingQueue • ArrayList • AttributeList • BeanContextServicesSupport • BeanContextSupport • ConcurrentLinkedQueue • CopyOnWriteArrayList • CopyOnWriteArraySet • DelayQueue • EnumSet • HashSet • JobStateReasons • LinkedBlockingQueue • LinkedHashSet • LinkedList • PriorityBlockingQueue • PriorityQueue • RoleList • RoleUnresolvedList • Stack • SynchronousQueue • TreeSet • Vector
16
17
18
![Page 7: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/7.jpg)
Demo: Notebook
searchNote()
/** * Search a note */ public String searchNote(String searchString) { for (String note : notes) { if (note.contains(searchString)) { return note; } } return ""; // Note not found }
19
ArrayList: Array wechselnder Größe - Generische Klassen - Indizes - Items entfernen - ungültige Indizes - for-each - while - break(!)
20
21
![Page 8: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/8.jpg)
Demo: Auktionssystem
Sammlungen
flexible Größe feste Größe
aus java.util.* eingebaut
nehmen nur Objekte auf
Objekte + primitive Typen
zahlreiche Methoden
effizienterZugang
22
Lot - null - Auction - Anonyme Objekte
23
24
![Page 9: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/9.jpg)
Weblog.txt
2007 04 23 21 072007 04 23 22 132007 04 24 07 352007 04 25 14 592007 04 26 22 59…
Jahr • Monat • Tag • Stunde • Minute
Demo: Weblogs
25
26
Felder fester Größe - for-Schleife - ++, += -
27
![Page 10: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/10.jpg)
Arrays in C#include <stdio.h>
int main(){ char name[20]; int balance = 50;
printf("Please enter your name: "); gets(name); printf("Hello, %s!\n", name); printf("Your balance is %i EUR.\n", balance);
return 0;}
Schleifen
for-eachfor (ElementType element: collection) { loop body}
whilewhile (condition) { loop body}
forfor (init; condition; post-body) { loop body}
Schleifen
for-each um alle Elemente einer Sammlung zu durchlaufen
while für eine vorher unbekannte Anzahl Schleifendurchläufe
for für eine vorher bekannte Anzahl Schleifendurchläufe
28
for-each, while, fordo-while bleibt außen vor - zu fehleranfällig
29
for-each, while, for
30
![Page 11: Objektsammlungen - uni-saarland.de · Objektsammlungen Andreas Zeller Programmieren 2 Andreas Zeller Konzepte (Wiederholung vom Dienstag) •Abstraktion •Modularisierung •Klassen](https://reader031.vdocuments.pub/reader031/viewer/2022022116/5c80ab7c09d3f2f3348b4e96/html5/thumbnails/11.jpg)
Konzepte• Sammlungen
• flexibler Größe: ArrayList
• fester Größe:Array
• Iteratoren
• null
• Schleifen
• for each
• while
• for
• break
• Überlauf
31