skip to main content

kiesler.at

Variablen mit Hashtable verwalten
updated by rck, 2004-10-03

Beispiel 1186 der EPROG-Beispielsammlung lässt sich sehr schön mit einer Hashtable lösen. Es handelt sich hierbei um eine schlichte Variablenverwaltung für ganzzahlige Werte.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8

process() -- Die Hauptschleife

In der Hauptschleife passiert wie gewohnt nicht viel. Wir zerlegen die Eingabe in Wörter und übergeben diese assign. Sobald wir auf ein "?" stoßen, geben wir den passenden Wert dazu aus.

159         public static Short process(String s)
160                 throws Exception
161         {
162                 syms=new Hashtable();
163                 StringTokenizer st=new StringTokenizer(s);
164                 String wort=st.nextToken();
165 
166                 while(!wort.startsWith("?")) {
167                         assign(wort);
168                         wort=st.nextToken();
169                 }
170 
171                 if(st.hasMoreTokens())
172                         throw new Exception("Da sind noch Worte übrig!");
173                 else
174                         return(getWert(wort));
175         }

Beschreibung process()

162 bevor wir die Hashtable benutzen, müssen wir sie instanzieren. Damit wird unter anderem Speicher für die Hashtable angefordert.

163 unser alter Bekannter, der StringTokenizer, leistet auch hier wie gewohnt gute Dienste.

164-169 Solange wir kein führendes ? finden, gehen wir davon aus, dass die Wörter Zuweisungen sind. Entsprechend führen wir diese Zuweisungen mit assign durch.

171 Bleibt am Schluß noch was übrig, handelt es sich um einen Fehler...
172 ...und wir werfen eine Exception.

173 anderenfalls...

174 liefern wir den gewünschten Wert zurück (falls er existiert).
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004