Lektion 6: Collections, Telefonbuchbeispiel 702 / 763
|
|
- Gregor Bader
- vor 7 Jahren
- Abrufe
Transkript
1 Lektion 6: Collections, Telefonbuchbeispiel 702 / 763
2 Beispiel: Telefonbuch Schreiben Sie eine Klasse, die bis zu maximal 20 Namen mit dazugehörigen Telefonnummern verwalten kann Funktionen: Name + Telefonnummer hinzufügen (anhängen) Liste nach Namen sortieren Hinweis: Zum Sortieren kann Selektion Sort (siehe oben) benutzt werden, wobei die Ordnung der Strings mit compareto ermittelt werden kann / 763
3 Beispiel: Telefonbuch public class Person { private String name; private int phone; //Custom-Konstruktor public Person (String name, int phone) { this.name = name; this.phone = phone; //Kopierkonstruktur public Person (Person p) { this.name = p.name; this.phone = p.phone; / 763
4 Beispiel: Telefonbuch public class Person {... public String getname() { return name; public int getphone () { return phone; / 763
5 Beispiel: Telefonbuch public class Person {... public String tostring() { return name+": "+phone; 706 / 763
6 Beispiel: Telefonbuch public class Phonebook { private static final int MAX_PERSON = 20; private Person[] entry = new Person[MAX_PERSON]; private int length = 0; public void add (Person p) throws PhonebookFullException { if (length == MAX_PERSON) throw new PhonebookFullException();... entry[length++] = new Person(p); 707 / 763
7 Beispiel: Telefonbuch public class Phonebook {... public void add (Person p) throws PhonebookFullException {...siehe oben public void add (String name, int phone) throws PhonebookFullException { if (length == MAX_PERSON) throw new PhonebookFullException(); entry[length++] = new Person(name, phone); / 763
8 Beispiel: Telefonbuch public class Phonebook {... public void sort () { for (int i=0; i<length; i++) { //Index mit kleinster Zahl suchen int minindex = i; for (int j=i+1; j<length; j++) { if (entry[minindex].getname(). compareto(entry[j].getname())>0) { minindex = j; //Tauschen Person min = entry[minindex]; entry[minindex] = entry[i]; entry[i] = min; / 763
9 Beispiel: Telefonbuch public class Phonebook {... public String tostring () { String ret=""; for (int i=0; i<length; i++) { ret += entry[i] + "\n"; return ret; 710 / 763
10 Beispiel: Telefonbuch public class Main { public static void main (String[] args) { try { Phonebook ph = new Phonebook(); ph.add("john", 13); ph.add("christiane",19); ph.add("peter", 12); ph.add("claudia", 51); ph.add("max", 52); System.out.println(ph); ph.sort(); System.out.println(ph); catch (PhonebookFullException ex) { System.out.println("FEHLER"); 711 / 763
11 Beispiel: Phonebook - Ausgabe D:\eprog\Telefonbuch>java Main John: 13 Christiane: 19 Peter: 12 Claudia: 51 Max: 52 Christiane: 19 Claudia: 51 John: 13 Max: 52 Peter: / 763
12 Beispiel: Phonebook - Ausgabe public class Phonebook {... public boolean hasphone (String name) {... public int getphone (String name) { for (int i = 0; i< length; i++) { if(entry[i].getname().equals(name)) { return entry[i].getphone(); return 0; / 763
13 Collection-Klassen (Container-Klassen) & Maps zum Speichern einer Sammlung von Objekten des gleichen Typs (Elemente) Elemente sind anonym Elemente müssen Objekte sein (müssen Referenztyp haben, keine primitiven Typen) es gibt Methoden zum Lesen von Elementen (z.b. mit Index-Parameter) und zum Hinzufügen und Löschen von Elementen. Variierende Anzahl an Elementen (Länge der Liste wird dynamisch durch Anzahl der gespeicherten Elemente bestimmt). 714 / 763
14 ArrayList-Klasse ArrayList<Rational> rs = new ArrayList<Rational>(); rs.add(new Rational(1,2)); rs.add(new Rational(3,4)); rs.add(new Rational(1,9)); Angabe des Elementtyps Rational num denom Rational num denom Rational 1 9 num denom... rs ArrayList<Rational> / 763
15 ArrayList-Klasse ArrayList<Rational> rs = new ArrayList<Rational>(); rs.add(new Rational(1,2)); rs.add(new Rational(3,4)); rs.add(new Rational(1,9)); Angabe des Elementtyps Rational num denom Rational num denom Rational 1 9 num denom... rs ArrayList<Rational> / 763
16 ArrayList-Klasse Der ArrayList-Typ für einen Elementtyp T wird bezeichnet mit ArrayList<T> Beispiel für eine Liste mit 4 Elementen (Zeichenketten): ArrayList<String> sl = new ArrayList<String>(); sl.add("wir"); sl.add(null); sl.add("lernen"); sl.add("java!"); 717 / 763
17 ArrayList-Klasse: Methoden add(t elem): Neues Element an die Liste anhängen set(int i, T elem): i-tes Element mit elem-objekt ersetzen. T get(int i): liefert i-tes Element als Rückgabe. T remove(int i): i-tes Element löschen (Elemente i+1 bis zum Ende der Liste rücken nach, wie bei einem Bücherstabel, aus dem ein Buch herausgenommen wird). Liefert gelöschtes Element zurück. int size() liefert die Anzahl der Elemente (Länge) der Liste Weitere Methoden: siehe / 763
18 ArrayList-Klasse: Methoden import java.util.arraylist; class RationalApp { public static void main (String [] args) { ArrayList<Rational> rs = new ArrayList<Rational>(); rs.add(new Rational(1,2)); rs.add(new Rational(2,3)); for (int i = 0; i<rs.size();i++) { System.out.println(rs.get(i)); 719 / 763
19 ArrayList-Klasse public class Phonebook { private static final int MAX_PERSON = 20; private Person[] entry = new Person[MAX_PERSON]; private int length = 0; public void add (Person p) throws PhonebookFullException { if (length == MAX_PERSON) throw new PhonebookFullException();... entry[length++] = new Person(p); 720 / 763
20 ArrayList-Klasse public class Phonebook { private ArrayList<Person> entry = new ArrayList<Person>(); public void add (Person p) { entry.add(new Person(p)); / 763
21 Beispiel: Telefonbuch public class Phonebook {... public void sort () { for (int i=0; i<length; i++) { //Index mit kleinster Zahl suchen int minindex = i; for (int j=i+1; j<length; j++) { if (entry[minindex].getname(). compareto(entry[j].getname())>0) { minindex = j; //Tauschen Person min = entry[minindex]; entry[minindex] = entry[i]; entry[i] = min; / 763
22 Beispiel: Telefonbuch public class Phonebook {... public void sort () { for (int i=0; i<entry.size(); i++) { //Index mit kleinster Zahl suchen int minindex = i; for (int j=i+1; j<entry.size(); j++) { if (entry.get(minindex).getname(). compareto(entry.get(j).getname())>0) { minindex = j; //Tauschen Person min = entry.get(minindex); entry.set(minindex,entry.get(i)); entry.set(i,min); / 763
23 ArrayList-Klasse Array ArrayList Definition String[] a; ArrayList<String> a; Erzeugen a = new String[20]; a = new ArrayList<String>(); Schreiben a[i] = "Java"; a.set(i, "Java"); Lesen String s = a[i]; String s = a.get(i); Löschen - a.remove("java"); a.remove(i); Länge der Liste - a.size(); String kann oben durch einen beliebigen Referenztyp (z.b. Person, Complex, Double...) ersetzt werden weitere Methoden siehe: / 763
24 Wrapper-Klassen stehen für alle primitiven Datentypen zur Verfügung Benutzung: dort wo Referenztypen erwartet werden, z.b. zum Speichern in Collections Hüll-Objekte (Referenztyp!) um den primitiven Wert stellen zusätzliche Methoden zur Verfügung Beispiel intobj 42 Objekt Integer intobj = new Integer(42); 725 / 763
25 Wrapper-Klassen Beispiele: Integer iobj = new Integer(42); int i = iobj.intvalue(); //Methode liefert primitiven int-wert Double dobj = new Double(3.14); double d = dobj.doublevalue(); //liefert primitiven Wert 726 / 763
26 Wrapper-Klassen primitiver Typ Wrapper-Klasse int Integer double Double char Character / 763
27 Autoboxing Wenn ein primitiver Wert eingesetzt wird wo ein Objekt erwartet wird, wird der Wert implizit in ein Wrapperobjekt verpackt Autoboxing fügt automatisch einen Konstruktoraufruf ein Integer intobj = 42; ist zulässig und wird automatisch als Integer intobj = new Integer(42); interpretiert. 728 / 763
28 Autoboxing Wenn ein Wrapper-Objekt zur Verfügung steht wo ein primitiver Wert erwartet wird, wird automatisch ein Getter-Aufruf eingefügt int i = intobj; ist zulässig und wird automatisch als int i = intobj.intvalue(); interpretiert. 729 / 763
29 Die Klasse Stack Stack ist ebenfalls eine Collection-Klasse Speichert auch als Elemente Objekte (z.b. Complex, Rational, Integer, Double,...) Elementtyp wird wieder mit Typparameter festgelegt stellt Standard Collection-Methoden, wie add, get zur Verfügung hat aber auch Methoden push: neues Element auf den Stapel legen pop: Oberstes Element vom Stapel nehmen und zurückliefern 730 / 763
30 Die Klasse Stack Funktioniert nach dem Last In First Out -Prinzip (LIFO) wie ein Stapel Ein Tellerspender: nur auf den obersten Teller kann zugegriffen werden 731 / 763
31 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: 3 (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
32 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: 3 3 (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
33 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
34 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
35 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
36 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: 3 3 (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
37 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
38 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: 3 3 (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
39 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: 3 (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
40 Die Klasse Stack Stack<Integer> s = new Stack<Integer>(); s.push(new Integer(3)); s.push(new Integer(2)); s.push(new Integer(-5)); int op2 = s.pop().intvalue(); int op1 = s.pop().intvalue(); s.push(integer(op1 + op2)); op2 = s.pop().intvalue(); op1 = s.pop().intvalue(); s.push(integer(op1 - op2)); oben auf dem Stapel liegt jetzt: 6 3 (2 + 5) = 6 Berechnung mit UPN-Rechner: / 763
41 Die Klasse Stack - Autoboxing Stack<Integer> s = new Stack<Integer>(); s.push(3); s.push(2); s.push(-5); int op2 = s.pop(); int op1 = s.pop(); s.push(op1 + op2); op2 = s.pop(); op1 = s.pop(); s.push(op1 - op2); Funktioniert auch so Dank Autoboxing 742 / 763
42 Die Klasse Stack - Autoboxing Stack<String> s = new Stack<String>(); s.push("!"); s.push("java"); Funktioniert auch s.push("lernen"); für String-Objekte s.push("wir"); String info1 = s.pop(); String info2 = s.pop(); System.out.println(info1 + info2); //wirlernen 743 / 763
43 Die Klasse Stack - Autoboxing Stack<Double> s = new Stack<Double>(); s.push(1.2); s.push(3d); s.push(1.0); s.push(4.5); double zahl1 = s.pop(); double zahl2 = s.pop(); System.out.println(zahl1 + zahl2); //5.5 und auch für Double- Objekte 744 / 763
44 Die Klasse Stack - Autoboxing Autoboxing macht keine implizite Typumwandlung import java.util.*; public class Main { public static void main (String [] args) { Stack<Double> s = new Stack<Double>(); s.push(1.2); s.push(3); //Fehler 745 / 763
Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrProblem: 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
MehrFaulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
MehrSchein-/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
MehrADT: 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,
MehrProgrammieren 2 16 Java Collections und Generizität
Programmieren 2 16 Java Collections und Generizität Bachelor Medieninformatik Wintersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Faulheit professionell: Fertige Datenbehälter
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrRechtsbelehrung. 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.
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrProgrammieren in Java
Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Abstrakte Datentypen Stack und Queue zu implementieren und anzuwenden Vorteile von parametrischer Polymorphie
Mehr1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
MehrInformatik II Übung 5 Gruppe 3
Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrAufgabe11. 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
MehrAlgorithmen und Programmierung III
Musterlösung zum 5. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Implementieren von ADTs Testlauf der Klasse TestDeque in der z05a1.jar: 10 Punkte
MehrVersuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.
Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse
MehrComputeranwendung 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();
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 08: Dynamische Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays anpassen Übungsaufgabe von letzter Stunde Array-Elemente Einfügen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zu Arrays & Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays und die Verwendung der ArrayList 2. Teil: Weitere Aspekte
MehrStapel (Stack, Keller)
Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrJavakurs 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
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (2/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Listen Bisher: Collections
MehrProgrammieren 2 Übung Semesterwoche 2
Programmieren 2 Übung Semesterwoche 2 1. Stack (LIFO: Last-In--First-Out) Implementieren und testen Sie eine Klasse Stack, so dass beliebig viele Objekte eines vorgegebenen Datentyps (z. B. String) auf
MehrJAVA 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)
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte
MehrFelder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.
Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen
MehrDurch 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
MehrKapitel 3: Datentyp Keller und Schlange
Kapitel 3: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II Datentyp Keller und Schlange SS 2019 3-1 Definition Keller und seine Operationen
MehrKapitel 4: Datentyp Keller und Schlange
Kapitel 4: Datentyp Keller und Schlange Keller (Stack) Schlange (Queue) 4-1 Definition Keller und seine Operationen Ein Keller (engl. Stack; Stapel) ist eine endliche Menge von Elementen mit einer LIFO-Organisation
Mehr55 Ring-Queue. size. push. clear. get. Reinhard Schiedermeier / Klaus Köhler, Das Java-Praktikum, dpunkt.verlag, ISBN
D3kjd3Di38lk323nnm 394 55 Ring-Queue In dieser Aufgabe wird eine generische Containerklasse definiert. Ihre Kapazität wird beim Erzeugen festgelegt, im Gegensatz zu den Klassen des Collection- Frameworks.
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrAufgaben NF 11; Seite 1
Aufgabe Ref 1: Gegeben ist die Klasse Schueler public class Schueler { private String name, vorname, kurs; // Konstruktor public Schueler(String n, String vn, String k) { name=n; vorname=vn; kurs=k; public
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 14: Verkettete Listen Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München Stack 18.
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
MehrEinstieg 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
MehrAnregungen zu Übung 2
Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrUniversitä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
MehrJava 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]...
MehrOrdnung im Materiallager: Datenstrukturen II. Suchen und Sortieren im Array Verkettete Listen Rekursion
Ordnung im Materiallager: Datenstrukturen II Suchen und Sortieren im Array Verkettete Listen Rekursion Indizierter Datenbehälter Modell: Parkhaus, nummerierte Plätze interface FuhrparkIndex { // indiziert
MehrProgrammierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung
Programmierstil Objektsammlungen Einführung in Sammlungen Variablennamen Kommentare Layout Einrückung (siehe: Stilrichtlinien im Buchanhang) 4.0 Konzepte Sammlungen (besonders: ArrayList) Schleifen: die
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrObjekttypen. 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
MehrFallstudie: Online-Statistik
Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...
MehrThemen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
Mehr3.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
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
MehrKapitel 5: Iterierbare Container
Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik
Mehr1 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...................
Mehr1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){
MehrAbgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrII.4.6 Collections - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.6 Collections - 1 - Typische Datenstrukturen
Mehr5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrDatenstrukturen / Container in Java
Datenstrukturen / Container in Java Mathematik / Algebraischer Datentyp / Containerklassen Enum-Klassen Arrays (Felder) = elementare Container Algorithmen mit Arrays Prof. Dr. E. Ehses, 2014 1 Mathematik
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrSelbststudium OOP7 & ALG2 Auftrag
Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void
MehrC# - 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
Mehr1 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
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrInstitut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 10. Mai 2013 Programmieren II 11. Übungsblatt Hinweis: Dieses Übungsblatt enthält die zweite Pflichtaufgabe.
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr12.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
MehrKonkatenation zweier Listen mit concat
Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,
MehrJava Spickzettel von Panjutorials.de
Java Spickzettel von Panjutorials.de Hallo Welt public class HalloWelt public static void main(string[] args) // Gibt "Hallo Welt" auf die Konsole aus System.out.print("Hallo Welt"); Eine eigenständige
Mehrihrer Klasse benötigt die Funktion einfuegenan:
Aufgabe 11 Verkettete Listen Entwickeln Sie einen Algorithmus, der Ihnen das Einfügen eines Elementes an einer beliebigen Position innerhalb der Liste erlaubt. Der Algorithmus soll beispielsweise erlauben,
MehrPropä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
MehrHashmap: 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
Mehr12 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,
MehrInstitut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
Gliederung 5. Compiler 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Mehr1 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
MehrGrundlagen der Objektorientierten Programmierung - Statische Arrays
Statische Arrays Ein Array ist ein Behälter für Datenelemente desselben Typs. Arrays können beliebig viele Dimensionen haben. Die Standardform ist das eindimensionale Array, das man sich in Zeilenform
MehrProbeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
MehrPhilipp Güttler Progwerkstatt. Enums, Interfaces und Generics
Philipp Güttler 18.11.2008 Progwerkstatt Enums, Interfaces und Generics Seite 2 Enums Enum Typen Definition komplexer Datentyp, der festen Menge von Konstanten enthält Information der Reihenfolge der Konstanten
MehrInstitut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke
Java 3 Markus Reschke 08.10.2014 Kommentare Kommentare nützlich zum späteren Verständnis Zwei Arten Einzeiliger Kommentar bis zum Zeilenende mit // Mehrzeiliger Kommentar mit /*Text*/ 1 double x = 5; //
Mehr