Fallunterscheidung 15.000

aquarium1974

Aktives Mitglied
Hallo Javagemeinde,

ich baue gerade ein Tool welches anhand einer Postleitzahl eine Mailadresse zuordnet.
Insgesamt habe ich 15.000 untersch. Postleitzahlen anhand derer ich unterscheiden will.

So.
Wie mach ich das am geschicktesten?
15.000x if verschachteln? neeeee....
array und dann zeilenweise durchsuchen? neeee, array ist dann > 64kb
switch-case mit 15000 alternativen?
eine datenbanktabelle füllen und dann abfragen?

könnt ihr mir einen tipp geben?

danke.

gruss

aquariu1974
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
was steht denn in den switch-Fällen, gibt es auch 15.000 unterschiedliche Methoden aufzurufen,
oder sind ein- oder mehrere Variablen zu belegen oder oder?

eine Map bietet sich vielleicht noch an,
key -> Objekt mit Konfigurationsdaten oder Methode oder was auch immer,
freilich müsste das erst konfiguriert werden, wer soll das alles eintippen (genauso die DB-Befüllung)?

für genaueres bräuchte es genauere Infos, wie sehen denn die ersten 15 Fälle aus,
wie viele verschiedene gibt es, sind zufällig je 500 Fälle immer gleich?
 

aquarium1974

Aktives Mitglied
also es gibt 15.000 postleitzahlen und 300 unterschiedliche landkreise die dahinter stehen.
so ungefähr hängen hinter 50 plz also ein landkreis.

50 x 300 = 15.000

hilft das weiter?
 

aquarium1974

Aktives Mitglied
also es gibt 15.000 postleitzahlen und 300 unterschiedliche landkreise die dahinter stehen.
so ungefähr hängen hinter 50 plz also ein landkreis.

50 x 300 = 15.000

ansonsten ist es eine einfach zuordung

if (plz==12345) {strEMail="landkreisxy"}

hilft das weiter?
 
S

SlaterB

Gast
diese Daten müssen ja irgendwie vorliegen, wenn schon in einer Textdatei oder DB ergibt sich die Verarbeitung doch automatisch,
niemand kann allein zeitlich 15.000 Codezeilen programmieren, egal nach welchen Verfahren,

stelle eine Query an die DB-Tabelle oder lies die Daten aus DB/Txt ein, dann wirklich Map nicht schlecht, key -> value,
einmal erstellt belegt es eine gewisse Menge des Arbeitsspeichers, ist aber sehr effizient zu nutzen
 

AquaBall

Top Contributor
Der Sinn eines Programmes ist: Logik und Daten zu trennen.
Du brauchst nur 1 einzige Zuordnung:
Java:
eMailAdresse=findAdresse(postLeitZahl);
Die Daten verwalten kannst du wie gesagt über CSV,DB,XML,... und noch hundert andere Varianten.

Aber die Idee von 15.000 Ifs halte ich für skuril.
Erzeugen könnte man sie schon über ein MetaProgramm:
Java:
for (i=0; i<15000; i++) {
   ... hole nächsteEmailadresse
   String befehl = "  if ( postleitzahl == " + i + ") { email = " + nächsteEmailadresse  + "; } \n";
   ... schreibe "befehl" in eine Javadatei.
}
Aber das kann kein ernsthafter Ansatz sein, und auch dann müssen die Daten erstmal wo herkommen.
 

Ähnliche Java Themen

Neue Themen


Oben