![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hallo alle zusammen, ich möchte eine Schleife mit Werten aus einer XML durchlaufen. Hier sollen XML-Attribute als Variable verwendet werden. Als Beispiel, wo das eigentliche Problem liegt, soll der folgende Code dienen: PHP-Code: |
|
| | Nach oben #3 |
| Gast
Beiträge: n/a
|
Ich möchte variable Variablen verwenden. Ich weiss vorher noch nicht, welchen Namen diese Variablen haben. Mittels PHP wird dieses durch $$ erreicht. also so: $strVariable = "servername"; $strValue = "localhost"; $$strVariable = strValue; echo $servername; // localhost JAVA-Syntax (fehlt vielleicht oben zum besseren Verständnis) System.out.println( servername ); // localhost |
|
| | Nach oben #4 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
Das geht in Java nicht. Sowas kann man nur in Scriptsprachen machen (Python, Perl, Php) - aber nicht in Java/C/C++ oder so. Eine Möglichkeit wäre z.B. eine Map zu verwenden (Key-Value-Paare). Damit könntest du so ein Verhalten simulieren. MfG Peschmä
__________________ Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM "We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth |
| | |
| | Nach oben #5 |
| Gast
Beiträge: n/a
|
jepp. Java kann soetwas nicht. Allerdings solltest du keine map verwenden, sondern lieber ein Hash - das funktioniert genausogut und ist einfach nur unglaublich schnell! http://java.sun.com/j2se/1.5.0/docs/...l/HashMap.html Die funktioniert so ähnlich wie die assoziativen arrays in PHP. allerdings noch ein Wort der Warnung: Bei Hashes musst du am anfang überlegen, wie viele einträge hinein sollen, wobei: dieser wert mit 1.3 multipliziert ist dann die kapazität, die du benötigst. (denn ein Hash sollte man nicht zu mehr als 3/4 füllen) Bedenke dabei aber eines: ein Hash zu vergrößern, sobald es existiert ist ein unglaublich zeitaufwendiger prozess. Daher rate ich dir, sehr hoch zu schätzen, wie viele einträge dein Hash benötigt. Wenn du also schäzt, dass du nur 20 einträge benötigst, nimm lieber das eineinhalb bis zweifache davon... liebe grüße, Matt |
|
| | Nach oben #6 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.161
|
Matt... das ist so nicht richtig. peschmae meinte, genau wie du, eine HashMap. Du _kannst_ einer HashMap sagen, wieviele Einträge sie ungefähr haben wird, aber du _musst_ das nicht. Ich für meinen Teil habe so gut wie nie festgelegt, wieviele Einträge eine HashMap haben wird. Das ist wirklich nicht notwendig - außer es geht um mehrere tausend Einträge. Meistens weiß man auch gar nicht, wieviele Einträge gespeichert werden.
__________________ Patrick Gotthardts Weblog. |
| | |
| | Nach oben #7 | |
| Gast
Beiträge: n/a
|
TheDragonMaster, doch das ist richtig: Wenn du das nicht angibst, ist die Startkapazität 16 Einträge Zitat:
PHP-Code: liebe grüße, matt | |
|
| | Nach oben #8 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.161
|
*g* Ich weiß, dass HashMap eine Standard-capacity von 16 hat. Nur klang dein Beitrag so, als ob es Jahre dauern würde, die Kapazität zu erweitern. Wenn man weiß, wieviele Einträge in einer Map seien werden, dann kann und sollte man das angeben, aber ich für meinen Teil weiß das so gut wie nie - und bin trotzdem noch nicht gestorben.
__________________ Patrick Gotthardts Weblog. |
| | |
| | Nach oben #9 |
| Gast
Beiträge: n/a
|
jepp, aber was ich sagen will ist: lieber eine Hash Map mit einer Kapazität von 2000 (selbst wenn man nur 100 benötigt) alseine die zu schnell voll ist (Ich weiss nicht, wie Java das intern verwendet, aber es gibt ja durchaus auch hashmaps wo alle einträge dann listen sind - dann kannst du in einem index auch mehr als ein Element speichern |
|
| | Nach oben #10 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.161
|
Ähm, nein, da möchte ich dir definitiv wiedersprechen. Ich warte lieber ne halbe Nanosekunde darauf, dass meine Kapazität erhöht wird, als dass ich den Speicher unnötig volllade - das ist nämlich ein dauerhafter Schaden.
__________________ Patrick Gotthardts Weblog. |
| | |
| | Nach oben #11 |
| Gast
Beiträge: n/a
|
hm.. bei kleinen dingen ist es eine nanosekunde. bei etwas größeren vielleicht schon einige sekunden. 2000 pointer, die alle auf null verweisen sind jedoch keinerlei speicherbelastung mehr heutzutage. Btw: wenn du mit einem hash von der größe 16 beginnst und im lauf der zeit bzw. bei der initialisierung da hunderte datensätze hineinkommen, dann ist das schon merklich. |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Developers-guide.net Projekt sucht willige Java Programmierer | beny_mcde | Projekte unserer Mitglieder | 11 | 10.08.2006 13:03 |
| [JAVA] Wie man aus Java mit einem PHP-Script kommuniziert | sparrow | Tutorials | 0 | 25.03.2006 22:24 |
| [BUCH] Java ist auch eine Insel | kampet | Literatur | 5 | 22.02.2005 14:40 |
| Zwist um Java als Open Source | kampet | Nachrichten | 0 | 05.07.2004 03:37 |