bis Generics implementiert
parent
c396a70a4f
commit
b70d5be949
|
@ -0,0 +1,9 @@
|
||||||
|
package Exception;
|
||||||
|
|
||||||
|
public class Indexexception extends Exception {
|
||||||
|
|
||||||
|
public Indexexception() {
|
||||||
|
super("Nicht erlaubter Index wird abgefragt! Außerhalb des Wertebereiches");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package Generics;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Verwaltung<T> {
|
||||||
|
ArrayList<T> 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,9 @@
|
||||||
package indexverwaltung;
|
package indexverwaltung;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import Exception.Indexexception;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
public class Index {
|
public class Index {
|
||||||
|
@ -11,19 +14,22 @@ public class Index {
|
||||||
private RandomAccessFile eineIndexDatei;
|
private RandomAccessFile eineIndexDatei;
|
||||||
|
|
||||||
// Konstruktor
|
// Konstruktor
|
||||||
public Index()
|
public Index() {
|
||||||
{
|
|
||||||
indextabelle = new int[MAX];
|
indextabelle = new int[MAX];
|
||||||
// Initialisierung der indextabelle
|
// 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
|
// Kein Datensatz zu Schluessel vorhanden
|
||||||
}
|
}
|
||||||
|
|
||||||
// Methoden
|
// Methoden
|
||||||
public void erzeugeEintrag(int schluessel, int index) throws IOException
|
public void erzeugeEintrag(int schluessel, int index) throws IOException, Indexexception {
|
||||||
{
|
if (index < 0 || index > MAX) {
|
||||||
/** Speichert zu einen Schluessel den zugehoerigen
|
throw new Indexexception();
|
||||||
* Datensatz-Index in der indextabelle
|
}
|
||||||
|
/**
|
||||||
|
* Speichert zu einen Schluessel den zugehoerigen Datensatz-Index in der
|
||||||
|
* indextabelle
|
||||||
*/
|
*/
|
||||||
if (schluessel < MAX)
|
if (schluessel < MAX)
|
||||||
indextabelle[schluessel] = index;
|
indextabelle[schluessel] = index;
|
||||||
|
@ -32,8 +38,7 @@ public class Index {
|
||||||
aktualisiereIndexDatei(schluessel);
|
aktualisiereIndexDatei(schluessel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int gibIndexZuSchluessel(int schluessel)
|
public int gibIndexZuSchluessel(int schluessel) {
|
||||||
{
|
|
||||||
// Gibt zu dem Schluessel den gefundenen
|
// Gibt zu dem Schluessel den gefundenen
|
||||||
// Datensatz-Index zurueck
|
// Datensatz-Index zurueck
|
||||||
if (schluessel < MAX)
|
if (schluessel < MAX)
|
||||||
|
@ -43,25 +48,24 @@ public class Index {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ladeIndexDatei() throws IOException
|
public void ladeIndexDatei() throws IOException {
|
||||||
{
|
/**
|
||||||
/** Liest die Indextabelle vollstaendig aus einer Datei
|
* Liest die Indextabelle vollstaendig aus einer Datei Dies geschieht nur beim
|
||||||
* Dies geschieht nur beim Start des Programms
|
* Start des Programms
|
||||||
*/
|
*/
|
||||||
eineIndexDatei = new RandomAccessFile(dateiname, "r");
|
eineIndexDatei = new RandomAccessFile(dateiname, "r");
|
||||||
int index;
|
int index;
|
||||||
for(int schluessel = 0; schluessel < MAX; schluessel++)
|
for (int schluessel = 0; schluessel < MAX; schluessel++) {
|
||||||
{
|
|
||||||
index = eineIndexDatei.readInt();
|
index = eineIndexDatei.readInt();
|
||||||
indextabelle[schluessel] = index;
|
indextabelle[schluessel] = index;
|
||||||
}
|
}
|
||||||
eineIndexDatei.close();
|
eineIndexDatei.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void speichereIndexDatei() throws IOException
|
public void speichereIndexDatei() throws IOException {
|
||||||
{
|
/**
|
||||||
/** Speichert die Indextabelle vollstaendig in einer Datei
|
* Speichert die Indextabelle vollstaendig in einer Datei Dies geschlieht beim
|
||||||
* Dies geschlieht beim beenden des Programs
|
* beenden des Programs
|
||||||
*/
|
*/
|
||||||
eineIndexDatei = new RandomAccessFile(dateiname, "rw");
|
eineIndexDatei = new RandomAccessFile(dateiname, "rw");
|
||||||
for (int schluessel = 0; schluessel < MAX; schluessel++)
|
for (int schluessel = 0; schluessel < MAX; schluessel++)
|
||||||
|
@ -69,11 +73,10 @@ public class Index {
|
||||||
eineIndexDatei.close();
|
eineIndexDatei.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void aktualisiereIndexDatei(int schluessel) throws IOException
|
private void aktualisiereIndexDatei(int schluessel) throws IOException {
|
||||||
{
|
/**
|
||||||
/** Aktualisiert die indextabelle in der Indexdatei
|
* Aktualisiert die indextabelle in der Indexdatei Dies geschliet beim
|
||||||
* Dies geschliet beim Hinzufuegen eines neuen
|
* Hinzufuegen eines neuen Indexes oder Aendern eines alten Indexes
|
||||||
* Indexes oder Aendern eines alten Indexes
|
|
||||||
*/
|
*/
|
||||||
eineIndexDatei = new RandomAccessFile(dateiname, "rw");
|
eineIndexDatei = new RandomAccessFile(dateiname, "rw");
|
||||||
// eine int-Zahl belegt 4 Bytes
|
// eine int-Zahl belegt 4 Bytes
|
||||||
|
@ -83,14 +86,11 @@ public class Index {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zum Testen
|
// Zum Testen
|
||||||
public void gibIndextabelleAus()
|
public void gibIndextabelleAus() {
|
||||||
{
|
|
||||||
int schluessel = 0;
|
int schluessel = 0;
|
||||||
for(int element : indextabelle)
|
for (int element : indextabelle) {
|
||||||
{
|
|
||||||
System.out.println(schluessel + " " + element);
|
System.out.println(schluessel + " " + element);
|
||||||
schluessel++;
|
schluessel++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue