CS1005 Objektorientierte Programmierung
|
|
- August Becker
- vor 5 Jahren
- Abrufe
Transkript
1 CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Kollektionen der Java-API Listen Abbildungen Mengen Seite 1 Th Letschert
2 Datenstrukturen Datenstrukturen Sprachelemente zur strukturierten Speicherung komplexer Daten Datentyp und Datenstruktur Datentyp Format / Operationen für ein Datum an einer Speicherstelle Datenstruktur Kollektion von Speicherstellen die zusammen eine (komplexe) Information ausmachen Datenstrukturen Datenstrukturen können auf unterschiedliche Art realisiert werden in die Sprache integrierte Datentypen in der Standardbibliothek der Sprache (API) implementiert selbst implementiert Seite 2
3 Datentypen für Kollektionen Kollektionstyp Datentyp für Kollektionen Datentypen die zur Realisation von Datenstrukturen genutzt werden können Kollektionstypen der Sprache Java Array Arrays sind die einzigen Kollektions-(Daten-)Typen der Bestandteil der Sprache Java ist Tpy int[] = int-array int[] a = {1,2,3,4,5,6,7,8,9,0; Tpy String[] = String-Array String[] b = { "Hallo", "Welt" ; Class Klassen werden genutzt um Daten zu einer Einheit zusammen zu fassen, sie sind aber keine Kollektionstypen im eigentlichen Sinn. class C { static String s1 = "Hallo"; static String s2 = "Welt"; Seite 3
4 Datentypen für Kollektionen Kollektionstypen der Sprache Java Arrays sind der einzige Kollektions-(Daten-)Typen der Bestandteil der Sprache Java ist Seite 4
5 Datentypen für Kollektionen Kollektionstypen der Sprache Java Viele Sprachen können da mehr als Java! Beispiel Telefonverzeichnis: Konzept: Abb.: Name ~> Nummer Implementierung mit Sprachmitteln einer Skript-Sprache (hier Scala): var verzeichnis = Map("Karl Dall" -> "4711", "Karla Kahl" -> "4712"); Implementierung mit Sprachmitteln von Java: Arrays int int Einfach und übersichtlich Strukturierung mit Klassen hier unnötig maxsize = 2; actsize = 0; String[] name = new String[maxSize]; String[] number = new String[maxSize]; name[actsize] = "Karl Dall"; number[actsize] = "4711"; actsize++; Komplex, unübersichtlich! Strukturierung, Kapselung mit Klassen sehr hilfreich. name[actsize] = "Karla Kahl"; number[actsize] = "4712"; actsize++; Seite 5
6 Datentypen für Kollektionen Kollektionstypen der Java-Bibliothek ( Java-API ) Java-API / Java-Bibliothek Sammlung von Java-Klassen die (fast vollständig) in Java implementiert sind dabei Java-Sprachmittel nutzen, mit der Sprache ausgeliefert werden und die Programmierung wesentlich erleichtern. Enthält oft Lösungen für Standard-Probleme der Programmentwickler. Beispiel Telefonverzeichnis: Konzept: Abb.: Name ~> Nummer Implementierung I mit Sprachmitteln einer Skript-Sprache (Scala): var verzeichnis = Map("Karl Dall" -> "4711", "Karla Kahl" -> "4712"); Implementierung II mit der Java-API: Map<String, String> verzeichnis = new HashMap<>(); verzeichnis.put("karl Dall", "4711"); verzeichnis.put("karla Kahl", "Karla Kahl"); Seite 6
7 Kollektionen der Java-API: Array vs. Liste Beispiel Aufgabe: Lies Ganze Zahlen ein und gib sie sortiert aus Lösung mit Sprachmittel Array (1) public class Sort { public static void main(string[] args) { int[] a = new int[5]; // wir nehmen erst mal an das reicht int z = 0; // zaehlt die Eintraege // einlesen while(true) { String input = JOptionPane.showInputDialog("Ganze Zahl bitte:"); if (input == null) { break; int v = Integer.parseInt(input); if (z == a.length) { // a ist voll a = enlarge(a); a[z++] = v; // sortieren sort(a); // ausgeben output(a, z); Seite 7
8 Kollektionen der Java-API: Array vs. Liste Lösung mit Sprachmittel Array (2) private static void output(int[] a, int z) { String s = "["; for (int i=0; i<z; i++) { s = s + a[i] + " "; s = s + "]"; JOptionPane.showMessageDialog(null, s); private static void sort(int[] a, int z) { for (int i=0; i<z; i++) { for (int j=i+1; j<z; j++) { if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; private static int[] enlarge(int[] a) { int[] newa = new int[a.length*2]; for (int i=0; i<a.length; i++) { newa[i] = a[i]; return newa; Seite 8
9 Kollektionen der Java-API: Array vs. Liste Beispiel Aufgabe: Lies Ganze Zahlen ein und gib sie sortiert aus Lösung mit Hilfe der Klassenbibliothek (Java-API) package pack_1; import java.util.arraylist; import java.util.list; import java.util.collections; import javax.swing.joptionpane; public class SortB { public static void main(string[] args) { List<Integer> a = new ArrayList<>(); // einlesen while(true) { String input = JOptionPane.showInputDialog("Ganze Zahl bitte:"); if (input == null) { break; int v = Integer.parseInt(input); a.add(v); // sortieren Collections.sort(a); // ausgeben JOptionPane.showMessageDialog(null, a); Seite 9
10 Java-API: Kollektionen Kollektionen Java-Klassenbibliothek Paket java.util enthält Schnittstellen und Klassen zum Umgang mit Kollektionen Collection Framework: Zusammenhängendes System aus Klassen- und Schnittstellendefinitionen in der Klassenbibliothek Kollektionen / Kollektionstypen der Java-Klassenbibliothek gibt es in drei Varianten List Set Map Listen Mengen Abbildungen Dokumentation API: Beschreibt Klassenbibliothek von Java. Collection-Framework ist wichtiger Bestandteil der API Oracle Tutorial zu Kollektionen: Seite 10
11 Java-Kollektion: List Listen java.util.list<e> Datentyp der Listen mit Elementen vom Typ E Verwendung Anwendung benötigt Kollektion von Elementen mit einer von der Anwendung vorgegeben Reihenfolge Liste: Konzept 1) 2) 3) 4) 5) 6) A B C D K L Liste: Benutzerkontrollierte Folge von Elementen: Die Position von x in einem List-Typ hängt davon ab, wohin die Anwendung es positioniert. Seite 11 java.util Interface List<E> Die API-Dokumentation definiert die Fähigkeiten einer Liste
12 Java-Kollektion: ArrayList Listen-Implementierung mit Arrays java.util.arraylist<e> Implementierung von Listen mit Elementen vom Typ E auf Basis von Arrays Verwendung Anwendung benötigt Listen mit seltenem Einfügen und Entfernen innerhalb der Liste 1) 2) 3) 4) 5) 6) A B C D K L java.util Class ArrayList<E> List: Konzept Einer Liste A B C D K L Die API-Dokumentation ArrayList ArrayList: ImplementierungsVariante für Listen Seite 12
13 Java-Kollektion: LinkedList Listen-Implementierung mit verketteten Knoten java.util.linkedlist<e> Implementierung von Listen mit Elementen vom Typ E auf Basis von verketteten Knoten Verwendung Anwendung benötigt Listen mit häufigem Einfügen und Entfernen innerhalb der Liste 1) 2) 3) 4) 5) 6) A B C D K L java.util Class LinkedList<E> List: Konzept Einer Liste Die API-Dokumentation LinkedList A B C D K L LinkedList: ImplementierungsVariante für Listen Seite 13
14 Java-Kollektion: Listen Listen-Beispiel 1 Liste der Fibonacci-Zahlen erzeugen ArrayList verwenden package test; import java.util.arraylist; import java.util.list; public class Fiblist { public static void main(string[] args) { List<Integer> fiblist = new ArrayList<>(); for (int i=0; i<20; i++) { if( i==0 i == 1 ) { fiblist.add(i); else { int v1 = fiblist.get(i-2); int v2 = fiblist.get(i-1); fiblist.add(v1 + v2); Hier hätte man auch eine LinkedList verwenden können. Der Rest des Codes wäre dann identisch. Für die Anwendung ist die ArrayList aber etwas besser geeignet da effizienter. Bei derart kleinen Listen ist der Unterschied allerdings unerheblich. int i = 0; for (int e: fiblist) { System.out.println(i++ + " -> " + e); Seite 14 Welche Listen-Methoden werden hier verwendet? Wie werden sie eingesetzt, was ist ihre Wirkung? Wo findet sich die Beschreibung der Methoden?
15 Java-Kollektion: Listen Listen-Beispiel 2 Zahlen in eine sortierte Liste einfügen LinkedList verwenden. package test; import java.util.linkedlist; import java.util.list; import java.util.scanner; public class SortList { public static void main(string[] args) { List<Integer> sortedlist = new LinkedList<>(); Scanner scanner = new Scanner(System.in); for (int i=0; i<10; i++) { int v = scanner.nextint(); insert(v, sortedlist); int i = 0; for (int e: sortedlist) { System.out.println(i++ + " -> " + e); scanner.close(); private static void insert(int x, List<Integer> l) { int i = 0; while (i < l.size() && x > l.get(i)) { i++; l.add(i, x); Seite 15 Hier hätte man auch eine ArrayList verwenden können. Der Rest des Codes wäre dann identisch. Für die Anwendung ist die LinkedList aber etwas besser geeignet da effizienter. (Häufige Einfüge-Operationen im Innern der Liste.) Bei derart kleinen Listen ist der Unterschied allerdings unerheblich. Welche Listen-Methoden werden hier verwendet? Wie werden sie eingesetzt, was ist ihre Wirkung? Wo findet sich die Beschreibung der Methoden?
16 Java-Kollektion: Map (Abbildung) Abbildungen (Maps) java.util.map<k,v> Datentyp der Abbildungen (Zuordnungen) von Schlüsseln (Keys) vom Typ K zu Werten (Values) vom Typ V Verwendung Anwendung benötigt eine Zuordnung von Werten zu anderen Werten Map: Konzept A B C D K L X Y Z U V W Map: Benutzerkontrollierte Zuordnung von Schlüssel-Werten zu anderen Werten Seite 16 java.util Interface Map<K,V> Die API-Dokumentation definiert die Fähigkeiten einer Map
17 Java-Kollektion: HashMap Map-Implementierung mit Hash-Tabelle java.util.hashmap<k,v> Implementierung von Abbildungen auf Basis von Hash-Tabellen Verwendung Anwendung benötigt Abbildungen mit häufigen Modifikationen (Einfügen, Entfernen, Verändern von Schlüssel-Wert-Paaren) A B C D K L X Y Z U V W java.util Class HashMap<K,V> Die API-Dokumentation HashMap Map: Konzept einer Abbildung D U C Z HashMap: ImplementierungsVariante für Abbildungen K V A X B Y Seite 17 L W
18 Java-Kollektion: TreeMap Map-Implementierung mit Bäumen java.util.treemap<k,v> Implementierung von Abbildungen auf Basis von Baumstrukturen Verwendung Anwendung benötigt Abbildungen mit seltenen Modifikationen (Einfügen, Entfernen, Verändern von Schlüssel-Wert-Paaren) A B C D K L X Y Z U V W java.util Class TreeMap<K,V> Die API-Dokumentation TreeMap Map: Konzept einer Abbildung C Z TreeMap: ImplementierungsVariante für Abbildungen Seite 18 K V A X B Y D U L W
19 Java-Kollektion: Map Map-Beispiel 1 Fibonacci-Zahlen erzeugen HashMap verwenden package test; import java.util.hashmap; import java.util.map; public class FibMapExample { public static void main(string[] args) { Map<Integer, Integer> fibmap = new HashMap<>(); Hier wird die Zuordnung i ~> fib(i) in fibmap gespeichert. for (int i=0; i<20; i++) { if( i==0 i == 1 ) { fibmap.put(i, i); else { int v1 = fibmap.get(i-2); int v2 = fibmap.get(i-1); fibmap.put(i, v1 + v2); for (int e: fibmap.keyset()) { System.out.println(e + " -> " + fibmap.get(e)); Seite 19 Welche Map-Methoden werden hier verwendet? Wie werden sie eingesetzt, was ist ihre Wirkung? Wo findet sich die Beschreibung der Methoden?
20 Java-Kollektion: Map Map-Beispiel 2 / 1 Join berechnen (siehe Skript Diskrete Mathematik / Metz, Skript 12) join Seite 20
21 Java-Kollektion: Map Map-Beispiel 2 / 2 Map<String, String> r5 = new HashMap<>(); r5.put("henrich", r5.put("metz", r5.put("platen", r5.put("renz", r5.put("zink", "MNI" "MNI" "KMUB" "MNI" "KMUB" Map<String, String[]> r5.put("henrich", new r5.put("metz", new r5.put("platen", new r5.put("renz", new r5.put("zink", new ); ); ); ); ); r5 = new HashMap<>(); String[]{"MNI" ); String[]{"MNI" ); String[]{"KMUB" ); String[]{"MNI" ); String[]{"KMUB" ); zur Vereinheitlichung der Speicherung: Alle Spaltenwerte in einem Array. Map<String, String[]> r6 = new HashMap<>(); r6.put("henrich", r6.put("metz", r6.put("platen", r6.put("renz", r6.put("zink", new new new new new String[]{"F String[]{"F String[]{"C String[]{"I String[]{"Q 218", 117", 704", 316", 4", "2335" "2329" "2533" "2451" "2574" ); ); ); ); ); Seite 21
22 Java-Kollektion: Map Map-Beispiel 2 / 3 Map<String, String[]> r6joinr6 = new HashMap<>(); for (String namet1 : r5.keyset()) { for (String namet2 : r6.keyset()) { if (namet1.equals(namet2)) { String[] row1 = r5.get(namet1); String[] row2 = r6.get(namet2); String[] row = new String[row1.length+row2.length]; int i = 0; for(string e: row1) {row[i++] = e; for(string e: row2) {row[i++] = e; r6joinr6.put(namet1, row); Bemerkung: Ein Join kann im allgemeinen nicht so einfach berechnet werden. Seite 22
23 Java-Kollektion: Set Mengen (Sets) java.util.set<e> Datentyp der Mengen Verwendung Anwendung benötigt Menge: Kollektion ohne Duplikate und ohne eigene (durch die Anwendung bestimmte) Sortierung. Erlaubt der Implementierung eine Sortierung nach eigenen Kriterien. (Gut für schnelle Suche oder schnelles Einfügen.) D F B A E C java.util Interface Set<E> Set: Konzept einer Menge Die API-Dokumentation Seite 23
24 Java-Kollektion: Set Mengen-Implementierung mit Bäumen java.util.treeset<e> Implementierung von Mengen mit Bäumen D F B A E C Set: Konzept einer Menge java.util Interface TreeSet<E> Die API-Dokumentation C TreeSet: ImplementierungsVariante für Mengen E A B Seite 24 D F
25 Java-Kollektion: Set Set-Beispiel 1 Mengen werden seltener als Listen und Abbildungen benötigt. Beispiel: Mit der Menge aller Schlüssel einer Abbildung die Abbildung durchlaufen: Map<String, String> dict = new HashMap<String, String>();... List<String[]> l = new ArrayList<String[]>(); for (String k: dict.keyset()) { String[] entry = new String[2]; entry[0] = k; entry[1] = dict.get(k); keyset liefert die Menge aller Schlüsselwerte Seite 25
26 Java-Kollektion: Set Set-Beispiel 2a Relationen sind Mengen Tupeln. Berechne Relation (siehe Skript Diskrete Mathematik / Metz, Skript 12) : package test; import java.util.arrays; import java.util.hashset; import java.util.set; public class Relation { r wird direkt befüllt public static void main(string[] args) { Set<Integer[]> r = new HashSet<>(); r.add(new Integer[]{1,2); r.add(new Integer[]{1,3); r.add(new Integer[]{2,3); for (Integer[] tuple : r) { System.out.println(Arrays.toString(tuple)); Seite 26
27 Java-Kollektion: Set Set-Beispiel 2b package test; import import import import java.util.arrays; java.util.hashset; java.util.set; java.util.treeset; public class Relation { public static void main(string[] args) { Set<Integer> m = new TreeSet<>(); for (int i: new int[]{1,2,3) { m.add(i); r wird durch Berechnung in ein geschachtelten Schleife befüllt. Set<Integer[]> r = new HashSet<>(); for (int i: m) { for (int j: m) { if (i<j) { r.add(new Integer[]{i,j); for (Integer[] tuple : r) { System.out.println(Arrays.toString(tuple)); Seite 27
28 Java-Kollektion: Set Sets: Verwendung Sets nimmt man, wenn man: keine Duplikate speichern will und an einer (Benutzer-definierten) Ordnung nicht interessiert ist Liste: Was ich vorne einfüge, soll auch vorne gespeichert werden Set: Was ich einfüge, das speichere wo du willst Sets nimmt man aber nicht nur, wenn man diese Mengen-Eigenschaften benötigt, sondern auch, wenn Dinge sortiert aufbewahrt werden sollen, ihre Sortierung aber rein intern sein kann. D.h. wenn für die Anwendung die Art (Reihenfolge) der Speicherung nicht interessant ist und die Implementierung darum nach eigenen Vorstellungen speichern darf. Das macht eventuell ein sehr effizientes (weil von der Bibliothek implementiertes) Suchen und Einfügen möglich. Seite 28
29 Java-Kollektion: Set Set-Beispiel 3 Sortieren mit einem TreeSet TreeSet speichert Elemente die vergleichbar sein müssen in einem sortierten Baum. Aus diesem kann man sie sortiert entnehmen. ackage test; import java.util.scanner; import java.util.treeset; public class TreeSort { public static void main(string[] args) { 4 Scanner scanner = new Scanner(System.in); TreeSet<Integer> s = new TreeSet<>(); while (true) { int x = scanner.nextint(); if (x < 0) { break; s.add(x); 8 2 for (int e : s) { System.out.println(e + " "); System.out.println(); 3 scanner.close(); 7 Ein sortierter Baum nach Einfügen von: 4, 2, 8, 7, 3, 55 Seite 29 55
30 Java-Kollektion: Helferklassen Helferklassen Statische Klassen mit nützlichen Funktionen. Helferklassen der Kollektionen: Arrays Helfer-Klasse aus java.util mit statischen Methoden die beim Umgang mit Arrays helfen Collections Helfer-Klasse aus java.util mit statischen Methoden die beim Umgang mit Listen, Maps, Sets helfen. package test; import java.util.arrays; import java.util.collections; import java.util.list; Beispiel zu den Helferklassen Arrays und Collections public class HelperExample { public static void main(string[] args) { List<Integer> l = Arrays.asList(new Integer[]{9,8,2,3,7,4,3); Collections.sort(l); System.out.println(l); Seite 30
31 Datenmodellierung Datenmodelle Repräsentation (Darstellung / Speicherung) von Daten / Informationen innerhalb eines Programms Drei wichtige Konzepte zur Datenmodellierung: mathematisch-orientierte Konzepte: Listen, Abbildungen, Mengen Objektorientiert Relational Werden oft vermischt genutzt Mathematisch-orientierte Modellierung Jede Daten- / Informations-Struktur kann mit Hilfe von mathematischen GrundKonzepten: Listen (=Tupel), Abbildungen, Mengen, dargestellt werden Objektorientiert Die Definition eigener Datentypen und Datenstrukturen wird unterstützt Relational Die Datenmodellierung mit Relationen ( Tabellen ) ist von großer Bedeutung in der Praxis, wird aber von Programmiersprachen kaum unterstützt. Seite 31
32 Datenmodellierung Unterstützung der Datenmodellierung Programmiersprachen unterstützen die Datenmodellierung in unterschiedlicher Weise und unterschiedlich gut: Uralt-Sprache Fortran, Algol, Lisp bieten Arrays (Fortran/Algol) oder Listen (Lisp) als einzige Datenstruktur Sprach-Veteranen C bieten Arrays und wenige andere einfache Datenstrukturen (Union / Struct) sowie den Zugriff auf Adressen (Zeiger / Pointer) zur Realisierung komplexer Datenstrukturen Sprachen für Laien / Skript-Sprachen - Perl, PHP, Scala, bieten Datenstrukturen (Listen, Abbildungen, Mengen) als Sprachbestandteil und bieten so gute Unterstützung für mathematisch-orientierte Modellierung Klassische professionelle Sprachen C++ unterstützen die Definitionen eigener Kollektionen gut (Objektorientierung) moderne professionelle Sprachen C#, Java, aktuelles C++ unterstützen die Definitionen eigener Kollektionen gut (Objektorientierung) bieten Datenstrukturen (Listen, Abbildungen, Mengen) als Bibliotheken (APIs) und bieten so gute Unterstützung für mathematisch-orientierte Modellierung Seite 32
33 Datenmodellierung Beispiel Tabelle Tabelle: 2-dimensionale Anordnung von Informationen. Besteht aus Einzelinformationen die durch ihre Anordnung in Zeilen und Spalten in Beziehung gesetzt werden. Modellierung einer Tabelle Die Tabelle kann in unterschiedlicher Art modelliert / interpretiert werden, z.b. : als Relation oder als Abbildung Welche Beziehungen werden durch die Tabellenstruktur zum Ausdruck gebracht?. Seite 33
34 Datenmodellierung Beispiel Tabelle Tabelle: 2-dimensionale Anordnung von Informationen. Besteht aus Einzelinformationen die durch ihre Anordnung in Zeilen und Spalten in Beziehung gesetzt werden. Relationale Sicht Tabelle als Relation (Grundlage der aktuellen Datenbank-Technologie) table = { (Henrich, MNI, F 218, 2335), (Metz, MNI, F 117, 2329), (Platen, KMUB, C 704, 2533), (Renz, MNI, I 316, 2451), (Zink, KMUB, Q 4, 2574) Set<String[]> table.add(new table.add(new table.add(new table.add(new table.add(new table = new HashSet<>(); String[]{"Henrich", "MNI", "F String[]{"Metz", "MNI", "F String[]{"Platen", "KMUB","C String[]{"Renz", "MNI", "I String[]{"Zink", "KMUB","Q 218", 117", 704", 316", 4", "2335"); "2329"); "2533"); "2451"); "2574"); Seite 34 Welche Information geht bei der relationalen Modellierung verloren, bzw. muss zusätzliche gespeichert werden?
35 Datenmodellierung Beispiel Tabelle Tabelle: 2-dimensionale Anordnung von Informationen. Besteht aus Einzelinformationen die durch ihre Anordnung in Zeilen und Spalten in Beziehung gesetzt werden. Abbildungs-Sicht 1 Tabelle als Abbildung Name ~> Tupel mit Info zum Namen table = { Henrich ~> (MNI, F 218, 2335), Metz ~> (MNI, F 117, 2329), Platen, ~> (KMUB, C 704, 2533), Renz, ~> (MNI, I 316, 2451), Zink, ~> (KMUB, Q 4, 2574) Map<String, String[]> table = new HashMap<>(); table.put("henrich", new String[]{"MNI", "F 218", table.put("metz", new String[]{"MNI", "F 117", table.put("platen", new String[]{"KMUB","C 704", table.put("renz", new String[]{"MNI", "I 316", table.put("zink", new String[]{"KMUB","Q 4", "2335"); "2329"); "2533"); "2451"); "2574"); Seite 35 Wodurch unterscheiden sich Relationen von Abbildungen? Vor- / Nachteile dieser Darstellung im Vergleich zur relationalen?
36 Datenmodellierung Beispiel Tabelle Tabelle: 2-dimensionale Anordnung von Informationen. Besteht aus Einzelinformationen die durch ihre Anordnung in Zeilen und Spalten in Beziehung gesetzt werden. Abbildungs-Sicht 2 / 1 Tabelle als Abbildung Name ~> ( Attribut ~> Attribut-Wert) table = { Henrich ~> { Fachbereich ~> MNI, Raum ~> F 218, Metz ~> { Fachbereich ~> MNI, Raum ~> F 117, Platen, ~> { Fachbereich ~> KMUB, Raum ~> C 704, Renz, ~> { Fachbereich ~> MNI, Raum ~> I 316, Zink, ~> { Fachbereich ~> KMUB, Raum ~> Q 4, Seite 36 Telefon ~> 2335, Telefon ~> 2329, Telefon ~> 2533, Telefon ~> 2451, Telefon ~> 2574
37 Datenmodellierung Abbildungs-Sicht 2 / 2 Map<String, Map<String, String>> table = new HashMap<>(); Map<String, String> henrich = new HashMap<>(); henrich.put("fachbereich", "MNI"); henrich.put("raum", "F 218"); henrich.put("telefon", "2335"); Map<String, String> metz = new HashMap<>(); metz.put("fachbereich", "MNI"); metz.put("raum", "F 117"); metz.put("telefon", "2329"); Map<String, String> platen = new HashMap<>(); metz.put("fachbereich", "KMUB"); metz.put("raum", "C 704"); metz.put("telefon", "2533"); Map<String, String> renz = new HashMap<>(); metz.put("fachbereich", "MNI"); metz.put("raum", "I 316"); metz.put("telefon", "2451"); Map<String, String> zink = new HashMap<>(); zink.put("fachbereich", "KMUB"); zink.put("raum", "Q 4"); zink.put("telefon", "2574"); table.put("henrich", table.put("metz", table.put("platen", table.put("renz", table.put("zink", henrich); metz); platen); renz); zink); Seite 37
38 Datenmodellierung Datenmodellierung und Klassen Direkte Modellierungen komplexer Daten mit Sprach- oder Bibliotheks-Mitteln erfordert keine Klassen zur Strukturierung Modellierungen komplexer Daten mit primitiven Mitteln erfordert Klassen zur Strukturierung var verzeichnis = Map("Karl Dall" -> "4711", "Karla Kahl" -> "4712"); Modellierung mit Sprachmitteln (Scala) Map<String, String> verzeichnis = new HashMap<>(); verzeichnis.put("karl Dall", "4711"); verzeichnis.put("karla Kahl", "4712"); Modellierung mit API (Java) public class Verzeichnis { static int static int Verzeichnis.put("Karl Dall", "4711"); Verzeichnis.put("Karla Kahl", "4712"); maxsize = 2; actsize = 0; static String[] name = new String[maxSize]; static String[] number = new String[maxSize]; public static void put(string namep, String numberp) { name[actsize] = namep; number[actsize] = numberp; actsize++; Seite 38 Modellierung mit primitiv(er)en Sprachmitteln (Java)
Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM
Informatik II Vordefinierte atenstrukturen - Listen List - bbildungen Map - Mengen Set Seite 1 Th Letschert, THM atenstrukturen atenstrukturen Sprachelemente zur strukturierten Speicherung von aten atentyp
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenstruktur, Datentyp, Datenabstraktion Abstrakter Datentyp / Datenabstraktion Kollektionen
MehrOOP Aufgabenblatt Dezember 2013
1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 9 18. Dezember 2013 Aufgabe 1 Betrachten Sie folgende Anwendung zum Sortieren eingelesener Zahlen: package oop.blatt_9.aufgabe_1.vorgabe; import javax.swing.joptionpane;
MehrKapitel 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
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
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert Felder Seite Th Letschert OOP Felder / Arrays Seite 2 Th Letschert Feld / Array Feld (auch Array) Daten unter einem
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
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
MehrCS1005 Objektorientierte Programmierung
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Objektorientierung I : Statische Klassen Statische Aspekte (Modularisierung) Dynamische Aspekte (Klassen-Objekte) Seite 1 Th Letschert
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
MehrTeil V. Generics und Kollektionen in Java
Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für
MehrMengen 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
MehrOOP Aufgabenblatt Januar 2014
1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 10 15. Januar 2014 Aufgabe 1 Informationen zu einem beliebigen Objekt können in einer Abbildung als Zuordnung von Attribut und zugehörigem Wert gespeichert werden:
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
MehrMengen 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
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Klassenbibliothek Kollektionen Anforderungen der Kollektionen an ihre Elemente Iteratoren Seite 1 Klassenbibliothek Seite 2 Java
Mehr12 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
MehrInformatik II Aufgabenblatt 1
Prof. Dr. Th. Letschert FB MNI TH Mittelhessen StudiumPlus Informatik II Aufgabenblatt 1 Gruppenübung Aufgabe 1 Ein Telefonverzeichnis ist eine Zuordnung (Abbildung) von Namen zu Telefonnummern. Zuordnungen
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]...
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
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
MehrInformatik II Aufgabenblatt 6
Prof. Dr. Th. Letschert FB MNI TH Mittelhessen StudiumPlus Informatik II Aufgabenblatt 6 Gruppenübung Aufgabe 1 CSV Dateien sind Textdateien die Zeilen mit Komma-separierten Werten bestehen (CSV = Comma
MehrObjektorientierte Implementierung
Objektorientierte Implementierung 10) Verfeinern von Assoziationen mit dem Java-2 Collection Framework Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Objektorientierte Implementierung
MehrGrundlagen 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
MehrTeil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework
Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl
MehrDynamische 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
MehrInformatik Datenstrukturen und Dateien
Informatik Datenstrukturen und Dateien Seite 1 Th Letschert Datenstrukturen Datenstrukturen Sprachelemente zur Speicherung von vielen Daten Datentyp vs Datenstruktur Datentyp Format + Operationen für ein
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)
MehrCS1005 Objektorientierte Programmierung
CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Felder / Arrays Seite Th Letschert Datentypen und Datenstrukturen Datentyp Format / Operationen für ein Datum c z.b. ganze Zahl im
MehrObjektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen
Stefan Brass: OOP (Java), 21. Collection Klassen 1/30 Objektorientierte Programmierung Kapitel 21: Einführung in die Collection Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrAufgabenblatt Ein Multigraph kann als Graph mit gewichteten Kanten interpretiert werden. Erläutern Sie an einem Beispiel.
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 7 Aufgabe 1 1. Wann sind zwei oder mehr Mengen disjunkt? 2. Was bedeuten die Begriffe vertex und edge? 3. Was ist ein Multigraph? 4.
MehrAbstrakte Datentypen und Java
Abstrakte Datentypen und Java ƒ hehueolfn ƒ 5HDOLVLHUXQJYRQ$'7 NRQNUHWH'DWHQW\SHQ %HLVSLHO5DWLRQDOH=DKO ƒ 3DUDPHWULVLHUWH'DWHQW\SHQ %HLVSLHO)HOG6RUWLHUWHV)HOG ƒ 6FKQLWWVWHOOHQNRQ]HSW ƒ :LFKWLJH'DWHQW\SHQLQ-DYD
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
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
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben
Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Alexander Lochmann, Iman Kamehkhosh, Marcel Preuß, Dominic Siedhoff Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester
MehrProgrammiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor
Programmiertechnik II Klausur SS 2018 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 9 2 12 3 12 4 15 48 5 23 6 13 7 20 8 16 Summe 120 Note Prof. Dr. O.
MehrNü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
MehrSammlungen Listen Mengen Abbildungen Algorithmen Wrapper
Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Pratikum SWE 2 M. Löberbauer T. Kotzmann H. Prähofer 1 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten Stacks Queues Priority
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
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
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Datentypen und Datenstrukturen Selbst definierte Datenstrukturen Innere Klassen Seite 1 Typen: 1. Kasper 2. Prinzessin 3. Großmutter
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
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,
MehrAbschnitt 10: Datenstrukturen
Abschnitt 10: Datenstrukturen 10. Datenstrukturen 10.1Einleitung 10.2 Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 829 / 867 Einleitung Überblick 10. Datenstrukturen 10.1Einleitung
MehrVorlesung Programmieren
Vorlesung Programmieren Java Generics und Java API Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Programme verarbeiten Daten Häufig
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenstrukturen I: Lineare Sequenzen / Listen Datenstrukturen für Sequenzen Sequenzen in der Java-API:
MehrOCP 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
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
MehrEinfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein
Mehr1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welches Interface ist nicht
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
MehrOOP Aufgabenblatt 7 6. Dezember 2013
1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 7 6. Dezember 2013 Aufgabe 1 Hausaufgabe Nr. 4 (Klein) Implementieren Sie, ohne Arrays oder eine sonstige Kollektion zu nutzen, folgende Fingerübungen zu Rekursion
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.
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
MehrGeoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)
Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ergebnisse teilgenommen: 73 nicht bestanden: 22 bestanden: 51 davon 4er: 12 davon 3er: 18 davon 2er: 15 davon 1er: 6 Aufgabe 1: Tracing 4 Punkte
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrPhysikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Entwurf von Algorithmen I Rohe Kraft / Erschöpfende Suche Kombinatorische Objekte Entwurf von
MehrWo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt 24.03.2014 ORGANISATORISCHES tobias.witt@hhu.de 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber später in den Übungen!
MehrGenerische Polymorphie in Java-
Generische Polymorphie in Java- Johannes Waldmann (HTWK Leipzig) Plan Beispiel Collections, Iteratoren, Maps Schnittstellen und Implementierungen Genaueres zum Typsystem Details zu Implementierungen zur
MehrCollections. Arthur Zaczek. Nov 2015
Arthur Zaczek Nov 2015 1 Collections 1.1 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen, je nach Nutzung 1.2 Grundlegende
MehrJavakurs 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
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
MehrInstitut für Programmierung und Reaktive Systeme 6. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 6. Juli 2018 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 27. August
MehrCS1005 Objektorientierte Programmierung
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Funktionen / statische Methoden - Definition - Verwendung - Ausführung Seite 1 Th Letschert Funktionen: Definition und Verwendung
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
MehrProgrammieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrJava 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
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren II Dr. Werner Struckmann 29. August 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
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
MehrHashtags - Klausuraufgaben
Hashtags - Klausuraufgaben (1.) Welche Ausgabe hat folgender Quellkode? public class Test public static void main(string args[]) HashMap y = new HashMap(); y.put("paper","x"); y.put("pen","y"); y.put("pencil","z");
MehrCollections. Arthur Zaczek
Collections Arthur Zaczek Nov 2015 1/31 Collections Collections 2/31 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen,
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrDatenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
MehrEinführung in die Programmierung I. 2.4 Felder. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.4 Felder Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.4 Felder (Vektoren, "array"s) 2.5 Verschachtelte Schleifen 2.6 "if" Anweisungen 2.7
MehrJava 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
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
MehrDatenstrukturen. Ziele
Datenstrukturen Ziele Nutzen von Datenstrukturen Funktionsweise verstehen Eigenen Datenstrukturen bauen Vordefinierte Datenstrukturen kennen Hiflsmethoden komplexer Datenstrukten kennen Datenstrukturen
MehrArrays. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik
Arrays Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arraytypen Speicherdarstellung von Arrays Auswertung
MehrProgrammieren 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
MehrInfo 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
MehrTU 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)
Mehr17. Hashing. Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren
336 17. Hashing Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren Motivation 337 Ziel: Tabelle aller n Studenten dieser Vorlesung Anforderung:
MehrInstitut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Juli 2017 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 28. August
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung
Mehr