Auf dem Schreibtisch eines Amtes hat sich ein Stapel mit Akten angehäuft. Die Akten
werden anhand der Nachnamen der betroffenen Fälle unterschieden. Die Akten
müssen nun nach Anfangsbuchstaben an verschiedene Sachbearbeiter verteilt
werden, so wandert z.B. die Akte "Balzert" an den Sachbearbeiter des Buchstaben
"B".
a. Realisieren Sie in Java die Sortierung des Aktenstapels nach
Anfangsbuchstaben, indem Sie die Akten vom unsortierten Stapel entnehmen
und auf einem Zielstapel wieder ablegen. Verwenden Sie ein Feld von 26
Zielstapeln (für jeden Buchstaben einen).
b. Realisieren Sie in Java die Sortierung des Aktenstapels nach
Anfangsbuchstaben, indem Sie die Akten vom unsortierten Stapel entnehmen
und auf einem Zielstapel wieder ablegen, falls der Anfangsbuchstabe A ist.
Andernfalls legen Sie die Akten auf einem Zwischenstapel ab. Anschließend
durchsuchen Sie den Zwischenstapel auf den Buchstaben B usw. Sie
benötigen hierzu also nur drei Stapel, müssen dafür aber die Stapel häufiger
durchsuchen.
public class Akte
{
private String name;
public Akte(String n)
{
name = n;
}
public String getName()
{
return name;
}
}
import java.awt.*;
public class AktenStapel extends Frame
{
Akte[] stapel;
Akte[][] zielstapel;
private static AktenStapel aktenStapel;
private AktenStapel(){}
public static void main (String[] args)
{
aktenStapel = new AktenStapel();
// aufruf von den Methoden...
}
public void erstelleStapel()
{
stapel = new Akte[9];
stapel[0] = new Akte("Hildegart");
stapel[1] = new Akte("Joseph");
stapel[2] = new Akte("Dietrich");
stapel[3] = new Akte("Zusaz");
stapel[4] = new Akte("Cediga");
stapel[5] = new Akte("Lisa");
stapel[6] = new Akte("Antoina");
stapel[7] = new Akte("Karl");
stapel[8] = new Akte("Max");
}
public void aufZielStapelVerteilen()
{
zielstapel = new Akte[26][];
for(int i = 0; i < stapel.length; i++)
{
// Jetzt kommt das Problem
char c = stapel[i].getName().toLowerCass().charAt(0);
if(c == 'a')
// bla bla
if(c == 'b')
// bla bla
if(c == 'c')
// bla bla
// usw..
}
}
}