Java Weiterführende Arrays. 1 Einleitung. AnPr

Größe: px
Ab Seite anzeigen:

Download "Java Weiterführende Arrays. 1 Einleitung. AnPr"

Transkript

1 Name Klasse Datum 1 Einleitung Für die Speicherung von gleichartigen Daten haben wir Arrays kennen gelernt. Diese eignen sich immer dann, wenn wir eine feste Anzahl gleicher Datenstrukturen (entweder einfache Datentypen, oder Objekte) haben und diese in einer Variablen ablegen möchten. Hierbei wurde folgender Syntax genutzt: Wir erzeugen in diesem Code also ein Array von 6 int Werten, und legen dieses Array in eine Variable für int Arrays ab. Wir werden bei dem Thema Objektorientierung noch sehen, dass es durchaus sinnvoll sein kann, den Typen der Arrayvariablen vom Typen des erzeugten Arrays abweichen zu lassen. Aber fürs erste lassen wir diese beiden Datentypen identisch. Was wir auch gelernt haben war, wie man mehrdimensionale Arrays erzeugen kann. Hierbei werden (für bspw. ein zweidimensionales Array) die beiden Dimensionsgrößen hintereinander geschrieben: Hier haben wir also ein Array geschaffen, welches 6 Zeilen und zwei Spalten aufweist wobei wir hier für uns einfach definiert haben, dass die erste Dimension für die Zeilen und die zweite Dimension für Spalten steht. Woher weiß ich eigentlich, was der Index für Zeilen und welcher für Spalten ist? Antwort: Gar nicht! Es ist nämlich so, dass ein Array einfach nur Dimensionen hat. Ob ich die erste Dimension nun Zeile, Spalte oder sonst wie nenne, ist rein meine Sache. Entscheidend ist hier, was ich im Array ablege und somit wie ich die Daten interpretieren muss. Soweit unser Vorwissen, mit dem wir schon ziemlich weit kommen. Es gibt aber Situationen, welche uns bei diesen Arrays vor sehr schwierigen Aufgaben stellen: Ich habe pro Datensatz in der ersten Dimension nicht immer die gleiche Menge an Werten in der zweiten Dimension. Z.B. in der ersten Dimension habe ich Teams und in der zweiten Teammitglieder, wobei pro Team unterschiedliche Mitgliederanzahlen vorherrschen. Ich weiß beim Erzeugen des Arrays nicht, wie viele Einträge ich eigentlich benötige die Arraygröße soll also flexibel sein. Ich möchte nicht mit Hilfe der Indexposition auf das Array zugreifen, sondern mit Hilfe eines Schlüsselwertes. All diese Anforderungen können vom Array direkt nicht bedient werden. Es wäre zwar Möglich mit Hilfe von eigenen kleinen Unterprogrammen diese Aufgaben zu lösen, aber das würde mitunter umständlich werden. Wir wollen uns nun mit Möglichkeiten beschäftigen, die uns Java für diese Problemstellungen bietet. Dies wären: nicht rechteckige Arrays ArrayList Assoziative Arrays _ArrayPt2_v03.docx Seite 1

2 2 Nicht rechteckige Arrays oder alles Lüge bei n Dimensionen Zuerst muss ich mal eine kleine Notlüge bezüglich mehrdimensionaler Arrays in Java zugeben. Java kann eigentlich gar keine mehrdimensionalen Arrays abbilden. Java tut nur so! Wir sehen uns hierzu mal folgenden Code an: Hier wird ein zweidimensionales Array erzeugt, indem zuerst ein eindimensionales Array erzeugt wird, welches wiederum Arrays aufnehmen kann. Pro Arrayposition der ersten Dimension wird nun ein neues Array erzeugt, welches entsprechend die zweite Dimension darstellt. Wenn wir uns das Ganze nun Grafisch vorstellen, würde man das dergestalt visualisieren, dass man ein äußeres Array mit (in diesem Beispiel) 3 Einträgen hat und pro Eintrag wiederum ein Array mit 6 Datenwerten hat. Die wichtige Information ist nun, dass folgender Code exakt das gleiche Konstrukt liefert, wie der oben abgebildete: int[][] my2dimarray = new int[3][6]; Dies hat nun weitreichende Konsequenzen. Sehen wir uns nun folgenden Code an und versuchen ihn zu interpretieren: Das Besondere ist nun, dass man also aus einem zweidimensionalen Array eine Zeile einfach auslesen kann was im Prinzip lediglich das Ansprechen eines Eintrags des Arrays der obersten Dimension ist. In der Variable teammitglieder steht somit folgendes Array: {"Erna", "Franz", "Gustav", "Heinz"}. Um nun zu beweisen, dass wir hier von ein und demselben Array sprechen, ergänzen wir den Code: teammitglieder[0] = "Erika"; System.out.println(teams[1][0]); Seite 2

3 Java Weiterführende Arrays Wie Du siehst, wurde in dem herausgelösten Array der Name Erna durch Erika ersetzt. Bei der Ausgabe wurde nun wieder auf das ursprüngliche zweidimensionale Array zugegriffen und siehe da auch hier ist die Erna nicht mehr da. Diese Erkenntnis können wir nun nutzen, um den ursprünglichen Gedanken der nicht rechteckigen Arrays weiterzuverfolgen. Ändern wir unseren Code nun wie folgt ab: Nun haben wir also die Situation, dass im Team auf Indexposition 1 fünf Einträge sind, also einer mehr als bei den beiden anderen Teams. Abgesehen davon, dass das unfair ist, sollte uns dieses Beispiel klar machen, dass wir also unterschiedlich große Einträge in den jeweiligen Positionen durchführen können. Wir halten also fest: Ein Array kann mehrere Dimensionen aufweisen. In Java ist ein mehrdimensionales Array eine Ineinanderschachtelung von eindimensionalen Arrays. Die Größe der Arraydimensionen wird bei der Erzeugung des Arrays festgelegt - entweder mit dem Schlüsselwort new, oder als Konstantwerte in geschweiften Klammern. Bei einem Syntax int[][] myarray = new int[3][6] wird ein rechteckiges Array angelegt, was soviel bedeutet wie jede Zeile hat die gleiche Anzahl an Datensätzen. Bei einem Syntax int[][] myarray = new int[3][] wird ein eindimensionales Array der Länge 3angelegt, welches pro Eintrag drei beliebig lange Integer Arrays aufnehmen kann. Mit myarray[0] = new int[6] wird in die erste Position des Arrays ein Integerarray der Länge 6 geschrieben. Wenn die Längen der Integerarrays unterschiedlich sind, spricht man von einem nicht rechteckigen Array. Zusatzinfo: Im Regelfall nutzen wir keine nicht rechteckigen Arrays. Solche Arrays machen den Code nicht unbedingt übersichtlicher. Trotzdem soll auf die Existenz hingewiesen werden, damit wir uns der Möglichkeit bewusst sind. 3 ArrayList wenn man hinterher erst schlauer ist Sehr häufig kommt es vor, dass man dynamische Listen erstellen muss also die Größe der Liste sich während der Programmausführung ständig ändern kann. Hier stoßen die Arrays (zumindest in Java) an ihre Grenzen. Skriptorientierte Sprachen wie bspw. Javascript haben damit kein Problem, Java Programmierer müssen sich hier etwas anderes ausdenken. Das Zauberwort hier heißt Array- List. Dieses Konstrukt erlaubt es uns, zu jeder Zeit Einträge hinzuzufügen und welche zu entfernen. Da eine ArrayList eben eine ArrayList und kein Array ist, sehen die Zugriffsformen entsprechend anders aus als bei einem Array. Hier müssen wir ein paar neue Methoden lernen, was aber recht intuitiv ist. Seite 3

4 Folgender Code soll die Nutzung verdeutlichen: Die ArraList Klasse versteckt sich in der Bibliothek util und muss somit importiert werden. Danach erzeugen wir ein ArrayList Objekt. Hier kommt ein neues Syntaxelement auf uns zu die Typisierung der raw Klasse. Die ArrayList ist eigentlich so aufgebaut, dass sie jegliche Objekte aufnehmen kann und somit vom inneren Aufbau her alle Daten vom Typ Object verarbeitet. Das ist aber vom Handling her recht umständlich, da die get Methode demnach auch immer nur Elemente vom Typ Object zurückgibt und wir für die Weiternutzung einen Typecast durchführen müssten. Dieser Typecast wird uns abgenommen, wenn wir bei der ArrayList in spitzen Klammern den eigentlichen Datentyp eintragen in unserem Beispiel eben <String>. Wer nun schon etwas in die objektorientierte Programmierung hineingeschnuppert hat weiß nun aber, dass ArrayList Objekte somit keine einfachen Datentypen aufnehmen können, sondern nur Objekte. Wer aber trotzdem bspw. ganze Zahlen in einer ArrayList ablegen möchte, muss mit den Wrapperklassen arbeiten: ArrayList<Integer> myarraylist = new ArrayList<Integer>(); Nun können wir mit der Methode add die einzelnen Elemente einfügen. Der get Befehl liest sie wieder aus, wobei der Parameter die Position in der ArrayList festlegt. Wenn wir nun an einer bestimmten Position etwas einfügen, so müssen wir eine andere add Methode verwenden und zwar diejenige mit einem Indexparameter (bspw. add(3,"h") ). Hier wird dann ein Element an die entsprechende Position gesetzt. Aber Achtung alle nachfolgenden Elemente verschieben sich dann um eine Position. Gelöscht werden Elemente mit der remove() Methode, welche ebenfalls die Indexposition als Parameter verlangt. Hier werden sich die nachfolgenden _Elemente entsprechend wieder nach links verschieben. Wenn wir lediglich ein Element austauschen wollen, so müssen wir die Methode set verwenden. Folgende Methode würde also aus einer ArrayList den ersten Eintrag durch das H ersetzten: mystringarraylist.set(0, "H"); Ich habe mal etwas von einem Vector gehört. Ist das nicht das gleiche, wie eine ArrayList? Antwort: Die wesentlichen Eigenschaften sind identisch. Der eigentliche Unterschied ist, dass der Vector synchronized ist, was bedeutet, dass verschiedene Threads sicher auf das Objekt zugreifen können, ohne sich gegenseitig zu stören und somit Dateninkonsistenzen erzeugen. Für uns ist das jedoch (noch) nicht von Relevanz und demnach empfehle ich (und auch Oracle ) die Nutzung von ArrayLists. Seite 4

5 Java Weiterführende Arrays Wir halten also fest: Eine ArrayList kann dynamisch erweitert oder verkürzt werden. ArrayLists sollten bei der Deklaration den Typ der aufzunehmenden Klasse angeben. Dies geschieht in spitzen Klammern: ArrayList<String>. Die Methode add fügt ein Element in die ArrayList ein. Wird kein int-parameter angegeben, so geschieht es am Ende. Existiert ein int-parameter, so sorgt er dafür, dass das Element an der angegebenen Position eingefügt wird. Mit remove wird das angegebene Element gelöscht. Mit set kann ein Element ausgetauscht werden. Mit get wird das angegebene Element ausgelesen. Wenn die Klasse angegeben wurde, so hat das Element den angegebenen Datentyp. Zusatzinfo: Intern nutzt die ArrayList ein Array was für uns allerdings verborgen bleibt. Lediglich die capacity gibt uns Rückschlüsse auf dieses Array. Es gibt bspw. einen Konstruktor, welcher die initiale capacity vorgibt also die Größe des intern genutzten Arrays. Wenn man vorher schon ungefähr weiß, wie groß die Datenmenge sein wird, kann das Performancevorteile bringen. Trotzdem kümmert sich Java automatisch um die Größenanpassung dieses Arrays, sollte der Platz nicht mehr ausreichend sein. 4 Assoziative Arrays wer ist schon gerne nur eine Nummer? Bis dato haben wir in Arrays stets die Indexposition benötigt, um an die einzelnen Elemente zu kommen. Dies ist durchaus praktisch, da wir hiermit eine eindeutige Adressierung jedes einzelnen Eintrages haben und somit unsere Elemente sicher identifizieren können. Es gibt aber Situationen, bei denen wir nicht über eine Indexposition zugreifen möchten, sondern bspw. über einen Namen oder ähnlichen Kennzeichnungen. Hier bieten sich die sogenannten assoziativen Arrays an. Java bietet gleich eine ganze Fülle solcher Arrays an: HashMap Hashtable (wie Hashmap, nur synchronized ) LinkedHashMap (merkt sich die Einfügereihenfolge) TreeMap (bildet die Keys in einem schnell durchsuchbaren Baum ab) In diesem Kapitel werden wir uns nur mit der HashMap und HashTable beschäftigen, wobei das wesentliche Handling der anderen beiden Klassen sich nicht wirklich unterscheidet der Unterschied liegt eher in der inneren Umsetzung. Nun, wie können wir uns nun diese HashMaps vorstellen? Prinzipiell funktioniert das wie in einer Schulklasse. Die Schüler sitzen mehr oder weniger geordnet im Klassenzimmer. Wenn der Lehrer jemanden ansprechen möchte, dann sagt er nicht Die Schülerin in der hintersten Reihe, dritte von rechts solle sich melden, sondern er spricht sie mit dem Namen an. Genau so läuft es mit den assoziativen Arrays. Jeder Eintrag bekommt einen Namen eigentlich einen Key. Dieser muss somit eindeutig innerhalb des Arrays sein, um den Eintrag eindeutig identifizieren zu können. Man spricht hier auch von Schlüssel/Wert Paaren). Das Besondere ist nun, dass wir jede Klasse, welche die Methoden hashcode und equals aufweist, als Key verwenden können. hashcode liefert einen Code, welcher als Schlüssel zum Auffinden des Elements verwendet wird und equals kennen wir ja bereits aus der String Methode hier wird auf inhaltliche Gleichheit Seite 5

6 geprüft. Wir sehen hier wieder den Syntax mit den spitzen Klammern, welchen wir bei ArrayLists bereits gesehen haben. Auch hier gilt, wir können in die HashMap nur Objekte eintragen, keine einfachen Datentypen. Der oben stehende Code erzeugt eine HashMap. In diesem Beispiel habe ich den Key als String vorgegeben und die Elemente (also die Werte, welche ich später suchen möchte) als Integer wir wollen somit zu jedem Namen eine Zahl, bspw. das Alter, einfügen. Wenn wir später objektorientiert arbeiten, können wir als Wertelement beliebige Klassen vorsehen. Die Methode put fügt ein Schlüssel/Wert Paar ein. Wo in der HashMap dies geschieht ist für uns irrelevant. Wir haben ja den Key, der uns eindeutig zu unserem Wert führt. Danach habe ich die Werte eingetragen, indem ich jedem Wert noch einen Schlüssel mitgegeben habe. Dieser muss eindeutig sein taucht ein Schlüssel ein zweites mal auf, so wird der vorausgegangene Wert einfach überschrieben. Im Code habe ich nun eine Stringvariable mykey deklariert und mit einem Schlüsselwert belegt hier der Name Frieda. Nun fischen wir uns den Eintrag von Frieda mit folgendem Code aus unserer HashMap: myhashmap.get(mykey); Schon haben wir das Alter von Frieda herausgefunden. Was passiert eigentlich, wenn ich in dem oberen Beispiel einen Schlüssel suche, der gar nicht existiert, wie bspw. Paul? Antwort: Die HashMap würde den Wert null liefern. Da wir ja eine Integerklasse als Wert (und nicht der einfache Datentyp int ) vorgesehen haben, kann die HashMap auch null zurückliefern. Nun wollen wir uns noch mal ein paar nützliche Methoden der HashMap ansehen, welche uns den Umgang mit den Hashmaps erleichtern werden. Beginnen wir mit den contains Methoden. Diese zeigen uns an, ob ein Key oder ein Value existiert: myhashmap.containskey("frieda"); myhashmap.containsvalue(21); Beide Methoden liefern einen boolean Wert zurück. containskey liefert true, wenn das angegebene Argument (in unserem Beispiel Frieda ) als Schlüssel in der HashMap existiert. containsvalue liefert uns true zurück, wenn der angegebene Wert (in unserem Beispiel 21) mindestens einmal als Wert existiert. Was ebenfalls sehr von Nutzen sein kann, ist die Erzeugung einer Enumeration. Diese Funktion wird allerdings nicht von HashMaps unterstützt hier muss man über Collections gehen, was aber umständlicher ist. Eine Enumeration ist ein Objekt, welches mir ermöglicht sämtliche Elemente einer Hashtable sequenziell abzuarbeiten. Sehen wir uns hierfür folgenden Code an, welcher im Wesentlichen dem oberen gleicht, es wird lediglich mit einer Hashtable gearbeitet und über eine Enumeration ausgelesen. Seite 6

7 Java Weiterführende Arrays Der obere Teil ist also Identisch mit dem Code der HashMap, nur dass wir eine Hashtable nutzen. Nachdem wir unsere Hashtable mit Werten belegt haben, erzeugen wir ein Enumeration Objekt, welches im Prinzip eine Aneinanderreihung von Elementen ist, auf die ich sequenziell zugreifen kann. Zwei wesentliche Methoden sind zu beachten: nextelement() liefert das aktuelle Element und schiebt den Zeiger auf das nächste Element weiter. hasmoreelements() ist solange auf true, wie noch nicht alle Elemente ausgelesen wurden. Wer alle Schlüssel aus einer Hashtable auslesen möchte, der kann auch diese in eine Enumeration laden: myhashtable.keys() Entfernt werden die Elemente wiederum über den Key: myhashtable.remove(key); Wir halten also fest: Assoziative Arrays bilden Schlüssel/Wertpaare ab. Sowohl die Schlüssel, als auch die Werte müssen Objekte sein. Aus den Schlüsseln müssen sich Hashes erzeugen lassen können. Sie müssen innerhalb des Arrays eindeutig sein. Mit put werden die Schlüssel/Wertpaare abgelegt. Mit get(key) werden die Werte zum vorgegebenen Schlüssel ausgelesen. Mit remove(key) wird das Element zum angegebenen Schlüssel gelöscht. Man kann mit containskey bzw. containsvalue feststellen, ob ein gegebener Schlüssel bzw. ein gegebener Wert in dem Array vorhanden ist. Bei Hashtables können alle Werte, bzw. alle Schlüssel sequenziell ausgelesen werden, indem man mit.elements() bzw..keys() eine Enumeration erzeugt. Diese Enumerations liest man sequenziell mit der Methode nextelement() aus, bis die Methode hasmoreelements() den Wert false liefert. Zusatzinfo: Auch die Hashtable bietet einen Konstruktor mit einer initialen Kapazität an. Darüber hinaus gibt es noch den Wert des loadfactors, was im Wesentlichen angibt, bei welchem Füllgrad sich Java um die Erhöhung der Kapazität kümmert. Wer spezielles Verhalten seiner Hashtable bzw. Hashmap haben möchte, der sollte sich die Doku zum loadfactor ansehen für die meisten Nutzer reicht der normale Konstruktor ohne Parameter völlig aus. Seite 7

8 5 Lizenz Diese(s) Werk bzw. Inhalt von Maik Aicher ( steht unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. Seite 8

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte

Mehr

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer   144 Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.

Mehr

Mehrdimensionale Arrays

Mehrdimensionale Arrays Mehrdimensionale Arrays Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Eindimensionale Arrays haben wir bereits kennen gelernt. Es gibt aber auch mehrdimensionale Arrays. Die sind auch sehr notwendig, denken

Mehr

JAVA KURS COLLECTION

JAVA KURS COLLECTION JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)

Mehr

Name Klasse Datum. Datentyp: Definition: Anführungszeichen

Name Klasse Datum. Datentyp: Definition: Anführungszeichen Name Klasse Datum 1 Allgemeines Die wachsende Notwendigkeit Daten schnell und strukturiert zwischen einzelnen Systemen zu verteilen, hat dem XML Format einen wichtigen Platz in der IT Systemlandschaft

Mehr

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. 3.8 Objekttypen und Arrays Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.8-1 Primitive Datentypen

Mehr

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht. Name Klasse Datum 1 Allgemeines Programme werden üblicherweise nicht als ein einziger, fortlaufender Programmcode verfasst, sondern mit geeigneten Mitteln unterteilt und somit strukturiert. Die Methodik

Mehr

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays

Objekttypen. Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Objekttypen Referenzen, Objekte, Gleichheit, Wrapper, Arrays, mehr-dimensionale Arrays, Bildbearbeitung, krumme Arrays Primitive- und Objekt-Datentypen Primitive Datentypen benötigen einen vorher genau

Mehr

Name Klasse Datum. Um nun mit Variablen arbeiten zu können, müssen nun einige Voraussetzungen erfüllt sein:

Name Klasse Datum. Um nun mit Variablen arbeiten zu können, müssen nun einige Voraussetzungen erfüllt sein: Name Klasse Datum 1 Allgemein Wie der Name Datenverarbeitung schon verrät, dienen Rechner dazu Daten zu speichern, zu ändern und wieder auszugeben. Programme bilden den Algorithmus ab, wie die Daten zu

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 5 Mengen Informatik

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 4 ArrayList, PriorityQueue, HashSet und HashMap Array List Dynamisches Array ArrayList vertritt ein Array mit variabler Länge Kapazität passt sich automatisch

Mehr

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 21. Datenstrukturen 21.1 Einleitung 21.2 Listen 21.3 Assoziative Speicher 21.4 Bäume 21.5 Mengen 21.6 Das Collections-Framework in Java 21 Datenstrukturen 5 Mengen Einf. Progr. (WS 08/09) 870

Mehr

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen

Mehr

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

1. Referenzdatentypen: Felder und Strings

1. Referenzdatentypen: Felder und Strings 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung

Mehr

2.8 Klassen. Nichtgleichartige Elemente können in Klassen zu einem neuen Typ zusammengefasst werden. Beispiel: Die drei Komponenten

2.8 Klassen. Nichtgleichartige Elemente können in Klassen zu einem neuen Typ zusammengefasst werden. Beispiel: Die drei Komponenten 2.8 Klassen Frage: Arrays fassen gleichartige Elemente (d.h. Elemente von gleichem Typ) zusammen. Wie kann man nichtgleichartige Elemente zu einem neuen Typ zusammenfassen? Nichtgleichartige Elemente können

Mehr

Algorithmen und Datenstrukturen in Java. 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1

Algorithmen und Datenstrukturen in Java. 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1 Algorithmen und Datenstrukturen in Java 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1 Enumeratoren und Iteratoren Daten üblich gespeichert in: - Arrays, verketteten Listen, Bäumen, Geläufige

Mehr

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung

Mehr

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr Name Klasse Datum 1 Allgemeines Strings sind neben den Arrays die am meisten genutzten zusammengesetzten Datentypen da sie vom Prinzip her eine Kette von Character Werten sind. Da zusammengesetzte Datentypen

Mehr

OCP Java SE 8. Collections

OCP Java SE 8. Collections OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue

Mehr

Grundlagen der Informatik 0

Grundlagen der Informatik 0 Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative Container in C++ Christian Poulter Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...

Mehr

Einführung in die Programmierung für NF MI. Übung 04

Einführung in die Programmierung für NF MI. Übung 04 Einführung in die Programmierung für NF MI Übung 04 Inhalt Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 04 2 Arrays Arrays repräsentieren Reihungen von Objekten, z.b. Variablen

Mehr

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite

Mehr

ADT: Java Collections und ArrayList

ADT: Java Collections und ArrayList ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,

Mehr

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3 Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................

Mehr

Dynamische Datenstrukturen

Dynamische Datenstrukturen Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten

Mehr

Info B VL 14: Java Collections/Reflections

Info B VL 14: Java Collections/Reflections Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält.

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält. Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Interfaces Maps and Collections Iterable Collection Map Vorteile: Set List Queue SortedMap

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: JavaScript - Inhalt 1. Objekte 2. Arrays 3. Callbacks 1)JavaScript Objekte Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: Eine Methode wird immer mit dem Namen des Objekts, einem Punkt

Mehr

Der Datentyp String. Stringvariable und -vergleiche

Der Datentyp String. Stringvariable und -vergleiche Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Java Generics & Collections

Java Generics & Collections Praktikum Effizientes Programmieren (Sommersemester 2018) Dennis Reuling 1 / 1 Praktikum Effizientes Programmieren (Sommersemester 2018) Agenda Teil 1 Generics 2 / 1 Praktikum Effizientes Programmieren

Mehr

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.

Mussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet. C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache

Mehr

Es gibt immer einen Schlüssel und einen zugehörigen Wert,

Es gibt immer einen Schlüssel und einen zugehörigen Wert, JSON JavaScript Object Notation Im Unternehmenskontext spielt der Austausch von Daten zwischen unterschiedlichen Systemen eine große Rolle. Dabei müssen oft Technologie und Zuständigkeitsgrenzen überwunden

Mehr

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!

5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! 5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656

Mehr

Brückenkurs Programmieren

Brückenkurs Programmieren Brückenkurs Programmieren Tag 4: Rekursion und Objektorientierung Christopher Schölzel Technische Hochschule Mittelhessen 29. März 2018 Inhalt Rekursion Objektorientierung API-Klassen: Collections Ausblick:

Mehr

Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden.

Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als der Standard bezeichnet werden. 37 Leider gibt es in einigen Fällen keine wirklich einheitlichen Fachbegriffe im Deutschen, obwohl einige als "der Standard" bezeichnet werden. der Begriff der Klasse ist immer eindeutig. Die verschiedenen

Mehr

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches

Mehr

Grundlagen und Konzepte von C Datenstrukturen

Grundlagen und Konzepte von C Datenstrukturen Grundlagen und Konzepte von C Datenstrukturen Ausarbeitung von Andreas Gadelmaier Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik,

Mehr

Java I Vorlesung Collections

Java I Vorlesung Collections Java I Vorlesung 5 Collections 24.5.2004 Abstrakte Klassen und Interfaces Arrays Java Collections Framework Abstrakte Klassen: Motivation Häufig will man eine Klasse schreiben, die nur als Basisklasse

Mehr

Umsetzungshilfe Java Teil 1

Umsetzungshilfe Java Teil 1 Name Klasse Datum 1 Allgemeines In unseren Programmen werden Daten eingegeben, verarbeitet und wieder ausgegeben (EVA-Prinzip). Da wir am Anfang noch keine sehr umfangreichen Programme erstellen, sind

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) ArrayList 0 1 2 Obj0 Obj1 size() - 1 15.12.2014 CuP - VO 2 Auer 1 ArrayList import java.util.arraylist; ArrayList buchliste; buchliste = new ArrayList();

Mehr

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 28 1 Äußere Form Kommentare Formatierung Schreibweise 2 ArrayList

Mehr

Objektorientierte Programmierung und Modellierung

Objektorientierte Programmierung und Modellierung Objektorientierte Programmierung und Modellierung Einführung, Teil 2 24.10.17 - WS17/18 Hakan Aksu 1 Raumänderung beachten Dienstag 14:15-15:45 Uhr in M001 (anstatt K101) 2 Ausfalltermine 31.10 Vorlesung

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Die Klasse Collection (gb) implementiert eine Hash-Tabelle, deren Elemente aus einem Wert-Schlüssel-Paar

Die Klasse Collection (gb) implementiert eine Hash-Tabelle, deren Elemente aus einem Wert-Schlüssel-Paar 7.5.0 Collection Die Klasse Collection (gb) implementiert eine Hash-Tabelle, deren Elemente aus einem Wert-Schlüssel-Paar bestehen. Die Schlüssel sind generell vom Typ String und die assoziierten Werte

Mehr

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Hashmap: Video Erklärung

Hashmap: Video Erklärung Hashmap Hashmap: Video Erklärung Definition und Motivation Array: Zugriff über Index=Zahl Wert(Value) Schlüssel(Key) Maier, Klaus 21 Array Hashtag: Zugriff über einen nichtnumerischen Wert 06431 92310

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

Softwareentwicklung II (IB) Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Softwareentwicklung II (IB) Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Softwareentwicklung II (IB) Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.04.2018 08:07 Abgabe der Aufgabe auf diesem Blatt: bis 02.05.18, 08:00 Uhr durch Pushen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 07: Mehr zu Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung und Fragen zu Arrays 2-Dimensionale Arrays am Beispiel Schachbrett

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren für Wirtschaftswissenschaftler SS 2015 DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 5. Arrays und Listen Agenda Arrays

Mehr

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08

Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang.   WS 07/08 Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von

Mehr

Programmieren I. Kapitel 12. Referenzen

Programmieren I. Kapitel 12. Referenzen Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung

Mehr

Grundproblematik bei Fehlersituationen

Grundproblematik bei Fehlersituationen Name Klasse Datum 1 Grundproblematik bei Fehlersituationen Fehler können in vielen Situationen passieren. Fehlerhafte Eingaben, Files sind nicht mehr dort, wo sie erwartet werden, der Server ist plötzlich

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang

Reihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang Reihungen Martin Wirsing in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang http://www.pst.informatik.uni-muenchen.de/lehre/ws0506/infoeinf/ WS 05/06 2 Ziele Die Datenstruktur der Reihungen

Mehr

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata: Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

- EINSTIEG IN JAVA - (1/5) Datum:

- EINSTIEG IN JAVA - (1/5) Datum: - EINSTIEG IN JAVA - (1/5) Datum: 2.2 Wir lernen die Programmiersprache Java und entwickeln ein Computerspiel Schritt #1: Constructor-Methoden: Wir setzen die beiden Spieler in die 'Welt' (das Spielfeld)

Mehr

Algorithmen und Datenstrukturen 11

Algorithmen und Datenstrukturen 11 17. Januar 2012 1 Besprechung Blatt 10 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Hashing Kollisionsauflösung 4 Vorbereitung Blatt 11 Hinweise Zirkuläre Arrays

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Nützliche Utility-Klassen des JDK

Nützliche Utility-Klassen des JDK Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung

Mehr

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur C und Objektorientierte Programmierung im WS 2003/04 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel:

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

12.3 Ein Datenmodell für Listen

12.3 Ein Datenmodell für Listen Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste

Mehr

Kapitel 6 HASHING. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

Kapitel 6 HASHING. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Kapitel 6 HASHING Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm Übersicht 1 1. Einführung 2. Algorithmen 3. Eigenscha?en von Programmiersprachen 4. Algorithmenparadigmen 5. Suchen & SorGeren

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. Marc Satkowski 20. November C# Kurs Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung

Mehr

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 { Hochschule Harz Programmierung1 Aufgabe 10: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Hashing und Generische Klassen Versuchsziele Kenntnisse

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Collections Thomas Mauermeier 15.01.2019 Ludwig-Maximilians-Universität München Collections? Was ist eine Collection? Container für mehrere Objekte

Mehr

1 Einleitung Generizität Syntax... 2

1 Einleitung Generizität Syntax... 2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................

Mehr

Enterprise Java, Services und Systemintegration. Wie gut kennst Du das Collections Framework? Historie

Enterprise Java, Services und Systemintegration. Wie gut kennst Du das Collections Framework? Historie Enterprise Java, Services und Systemintegration Wie gut kennst Du das Collections Framework? @thfro http://www.frotscher.com thilo@frotscher.com Historie JDK 1.0 1996 Vector, Stack, Hashtable, Dictionary

Mehr