diff --git a/2Semester/src/Exception/Indexexception.java b/2Semester/src/Exception/Indexexception.java new file mode 100644 index 0000000..80b9035 --- /dev/null +++ b/2Semester/src/Exception/Indexexception.java @@ -0,0 +1,9 @@ +package Exception; + +public class Indexexception extends Exception { + + public Indexexception() { + super("Nicht erlaubter Index wird abgefragt! Außerhalb des Wertebereiches"); + } + +} diff --git a/2Semester/src/Generics/Verwaltung.java b/2Semester/src/Generics/Verwaltung.java new file mode 100644 index 0000000..e897d7e --- /dev/null +++ b/2Semester/src/Generics/Verwaltung.java @@ -0,0 +1,36 @@ +package Generics; + +import java.util.ArrayList; + +public class Verwaltung { + ArrayList datenstruktur; + + public void einfuegen(T datei) { + boolean add =datenstruktur.add(datei); + if (add) { + System.out.println(datei + "in die Liste hinzugefügt"); + } else { + System.out.println(datei + "konnte nicht hinzugefügt werden"); + } + } + + public T suchen(T datei) { + int index = datenstruktur.indexOf(datei); + if (index != -1) { + System.out.println(datei + "wurde an Position" + index + "gefunden"); + } else { + System.out.println(datei + "wurde nicht gefunden"); + } + return datei; + } + + public void loeschen(T datei) { + boolean removed = datenstruktur.remove(datei); + + if (removed) { + System.out.println(datei + "wurde aus der Liste entfernt"); + } else { + System.out.println(datei + "wurde nicht gefunden"); + } + } +} diff --git a/2Semester/src/indexverwaltung/Index.java b/2Semester/src/indexverwaltung/Index.java index 332f970..7daec54 100644 --- a/2Semester/src/indexverwaltung/Index.java +++ b/2Semester/src/indexverwaltung/Index.java @@ -1,6 +1,9 @@ package indexverwaltung; -import java.util.*; +import java.util.*; + +import Exception.Indexexception; + import java.io.*; public class Index { @@ -9,88 +12,85 @@ public class Index { private String dateiname = "Indexdatei.txt"; private int indextabelle[]; // 0 .. MAX-1 private RandomAccessFile eineIndexDatei; - + // Konstruktor - public Index() - { + public Index() { indextabelle = new int[MAX]; // Initialisierung der indextabelle - for(int i = 0; i < MAX; i++) indextabelle[i] = -1; + for (int i = 0; i < MAX; i++) + indextabelle[i] = -1; // Kein Datensatz zu Schluessel vorhanden } - + // Methoden - public void erzeugeEintrag(int schluessel, int index) throws IOException - { - /** Speichert zu einen Schluessel den zugehoerigen - * Datensatz-Index in der indextabelle + public void erzeugeEintrag(int schluessel, int index) throws IOException, Indexexception { + if (index < 0 || index > MAX) { + throw new Indexexception(); + } + /** + * Speichert zu einen Schluessel den zugehoerigen Datensatz-Index in der + * indextabelle */ - if(schluessel < MAX) + if (schluessel < MAX) indextabelle[schluessel] = index; // Aktualisieren der Indexdatei, // d. h. Abspeichern der Datei aktualisiereIndexDatei(schluessel); } - - public int gibIndexZuSchluessel(int schluessel) - { + + public int gibIndexZuSchluessel(int schluessel) { // Gibt zu dem Schluessel den gefundenen // Datensatz-Index zurueck - if(schluessel < MAX) + if (schluessel < MAX) return indextabelle[schluessel]; // oder -1, wenn Schluessel zu gross ist else return -1; } - - public void ladeIndexDatei() throws IOException - { - /** Liest die Indextabelle vollstaendig aus einer Datei - * Dies geschieht nur beim Start des Programms + + public void ladeIndexDatei() throws IOException { + /** + * Liest die Indextabelle vollstaendig aus einer Datei Dies geschieht nur beim + * Start des Programms */ eineIndexDatei = new RandomAccessFile(dateiname, "r"); int index; - for(int schluessel = 0; schluessel < MAX; schluessel++) - { + for (int schluessel = 0; schluessel < MAX; schluessel++) { index = eineIndexDatei.readInt(); indextabelle[schluessel] = index; } eineIndexDatei.close(); } - - public void speichereIndexDatei() throws IOException - { - /** Speichert die Indextabelle vollstaendig in einer Datei - * Dies geschlieht beim beenden des Programs + + public void speichereIndexDatei() throws IOException { + /** + * Speichert die Indextabelle vollstaendig in einer Datei Dies geschlieht beim + * beenden des Programs */ eineIndexDatei = new RandomAccessFile(dateiname, "rw"); - for(int schluessel = 0; schluessel < MAX; schluessel++) - eineIndexDatei.writeInt(indextabelle[schluessel]); + for (int schluessel = 0; schluessel < MAX; schluessel++) + eineIndexDatei.writeInt(indextabelle[schluessel]); eineIndexDatei.close(); } - - private void aktualisiereIndexDatei(int schluessel) throws IOException - { - /** Aktualisiert die indextabelle in der Indexdatei - * Dies geschliet beim Hinzufuegen eines neuen - * Indexes oder Aendern eines alten Indexes + + private void aktualisiereIndexDatei(int schluessel) throws IOException { + /** + * Aktualisiert die indextabelle in der Indexdatei Dies geschliet beim + * Hinzufuegen eines neuen Indexes oder Aendern eines alten Indexes */ eineIndexDatei = new RandomAccessFile(dateiname, "rw"); // eine int-Zahl belegt 4 Bytes - eineIndexDatei.seek((long)(schluessel * 4)); + eineIndexDatei.seek((long) (schluessel * 4)); eineIndexDatei.writeInt(indextabelle[schluessel]); eineIndexDatei.close(); } - + // Zum Testen - public void gibIndextabelleAus() - { + public void gibIndextabelleAus() { int schluessel = 0; - for(int element : indextabelle) - { + for (int element : indextabelle) { System.out.println(schluessel + " " + element); schluessel++; } } } -