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

Ähnliche Dokumente
Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Javakurs für Anfänger

Informatik II Musterlösung

12 Abstrakte Klassen, finale Klassen und Interfaces

Aufgabe 03. Swing: Die Swing-Oberfläche wird vorgegeben: Abbildung 1 Musterlösung

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Prüfung Softwareentwicklung II (IB)

Javakurs für Anfänger

Hashmap: Video Erklärung

ADT: Java Collections und ArrayList

Programmiermethodik 1. Klausur

Programmierkurs Java

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

4. Vererbung Die Klasse Object. Die Klasse Object

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Kapitel 5: Interfaces

Algorithmen und Datenstrukturen 07

Probeklausur zur Vorlesung

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Programmierung für Mathematik HS11

Einführung in die Programmierung

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Interfaces und Generics

Implementieren von Klassen

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

1 Abstrakte Klassen, finale Klassen und Interfaces

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

Übung 09: Vererbung und Dynamische Bindung

EINFÜHRUNG IN DIE PROGRAMMIERUNG

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Klausur Algorithmen und Datenstrukturen I SS 03

Einstieg in die Informatik mit Java

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Musterübung 09: Vererbung und Dynamische Bindung

Programmiertechnik Klassenvariablen & Instantiierung

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Java Einführung Klassendefinitionen

Universität Karlsruhe (TH)

Programmieren in Java

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

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

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

1 Polymorphie (Vielgestaltigkeit)

Programmieren 2 Java Überblick

Selbststudium OOP7 & ALG2 Auftrag

Beispielprüfung CuP WS 2015/2016

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Klausur: Java (Liste P)

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren

Java Einführung Abstrakte Klassen und Interfaces

Vorkurs Informatik WiSe 15/16

Hashing. Hash-Tabellen und -Funktionen Hash-Tabellen in Java

Javakurs für Anfänger

Erste Java-Programme (Scopes und Rekursion)

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Programmiermethodik 3. Klausur Lösung

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Algorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte

Fakultät IV Elektrotechnik/Informatik

Programmiertechnik Objektorientierung, Teil 2

Prüfung Softwareentwicklung I (IB)

Objektorientierte Programmierung Studiengang Medieninformatik

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

Informatik II - Übung 07

Matrikelnummer:

Die Klasse java.lang.object. Thorsten Treffer

Wie entwerfe ich ein Programm?

Propädeutikum Programmierung in der Bioinformatik

Transkript:

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 in der Anwendung von: Benutzung einer HashMap mit einer Klasse Student Erstellen einer generischen Klasse für eine HashMap Benutzung einer HashMap durch eine generischen Klasse mit einer Klasse Student Aufgabe11 Methode test1 In dieser Aufgabe wird die in java implementierte Klasse HashMap verwendet. Erstellen Sie ein neues Eclipse Projekt OHNE core.jar: o Projektname: Aufgabe09_a o Klassenname: Aufgabe09_a Erstellen Sie eine neue Klasse o Menü File, Eintrag New, Eintrag class o Name: Aufgabe11 Kopieren Sie folgenden Code in den Editor: Tragen Sie unbedingt Ihre Matrikelnummer in den Quellcode ein. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 { private void test1() { // definieren einer HashMap mit der Klasse Student HashMap<int, Object> hash; // erstellen einer Instanz hash = new HashMap<Integer, Student>(); // nun die Studenten einfuegen // hash.put(...,...); // nun suchen /* System.out.println("\r\n\r\nTest1:"); Student std = hash.get(22345); System.out.println("Student: "+std); std = hash.get(999999); System.out.println("Student: "+std); */ // test1 1

// komplett, dient als Vorlage für test3 private void test2() { ArrayList<Student>[] array = new ArrayList[101]; for (int i=0; i<array.length; i++) { array[i]=new ArrayList<Student>(); index=std1.getmatrnr() % array.length; array[index].add(std1); index=std2.getmatrnr() % array.length; array[index].add(std2); index=std3.getmatrnr() % array.length; array[index].add(std3); System.out.println("\r\n\r\nTest2:"); key=22345 % array.length; boolean gefunden=false; for (Student std : array[key]) { if (std.getmatrnr() == 22345) { System.out.println("Gefunden: "+std); gefunden=true; if (!gefunden) { System.out.println("Nicht Gefunden: 22345"); key=13345 % array.length; gefunden=false; for (Student std : array[key]) { if (std.getmatrnr() == 22345) { System.out.println("Gefunden: "+std); gefunden=true; if (!gefunden) { System.out.println("Nicht Gefunden: 13345"); // test2 private void test3() { // erstellen einer Hashtable durch GenKlasse // 101 Elemente GenKlasse<Student> hash; 2

// hier eintragen // rest komplett System.out.println("\r\n\r\nTest3:"); key=22345; System.out.println("Gefunden: "+hash.get(key)); key=13345; System.out.println("Gefunden: "+hash.get(key)); // test3 public static void main(string[] args) { Aufgabe11 main = new Aufgabe11(); main.test1(); main.test2(); main.test3(); Ablauf: 1) Klasse Student a) Anlegen der Klasse Student b) Kopieren des Quellcodes public class Student implements Comparable { private String name; private int matrnr; public Student ( String name, int matrnr ){ this.name = name; this.matrnr = matrnr; public String getname() { return name; public void setname(string name) { this.name = name; public int getmatrnr() { return matrnr; public void setmatrnr(int matrnr) { this.matrnr = matrnr; public String tostring() { return "Name: "+name+" Matrnr: "+matrnr; public boolean equals(object obj) { Student std = (Student) obj; return name==std.name && matrnr==std.matrnr; 3

public int compareto(object obj) { Student std = (Student) obj; int r = name.compareto(std.getname()); if (r==0) { if ( matrnr<std.getmatrnr() ) return -1; else if ( matrnr>std.getmatrnr() ) return +1; else return 0; return r; Aufgabe: Implementieren Sie in der Klasse Student die Methode hashcode. public Keine Parameter Rückgabe ist die Matrikelnummer 2) Methode test1 Implementieren Sie in der Methode test1 die beiden Suchroutinen. Definieren Sie in der Methode eine Variable vom Typ HashMap o Key ist Integer o Objekt ist Student Erstellen Sie eine Instanz der HashMap Fügen Sie die Studenten mit den Matrikelnummer in die HashMap. Auskommentieren der Suche Testen Musterlösung: Test1: Student: Name: Schulze Matrnr: 22345 Student: null 4

3) Klasse GenKlasse a) Anlegen der Klasse GenKlasse b) Kopieren des Quellcodes import java.util.arraylist; public class GenKlasse<T> { ArrayList<T>[] array; // Konstruktor komplett public GenKlasse(int n) { array = new ArrayList[n]; for (int i=0; i<array.length; i++) { array[i]=new ArrayList<T>(); // Einfuegen einer Objektes // a) index bestimmen // b) array[index].add(...) public void put(t item) { des Studenten mit keyobject // a) index bestimmen // b) for-each Schleife, Abfrage ob hashcode == keyobject // wenn ja return item public T get(int keyobject) { return null; 4) Methode test3 Implementieren Sie in der Methode test3 die beiden Suchroutinen. Erstellen Sie eine eigene HashTable mit der generischen Klasse o Anzahl ist 101 Fügen Sie die drei Studenten in die Hashtable Auskommentieren der Suche Testen Musterlösung: Test2: Gefunden: Name: Schulze Matrnr: 22345 Nicht Gefunden: 22345 Test3: Gefunden: Name: Schulze Matrnr: 22345 Gefunden: null 5