PDA

View Full Version : [Frage] ArrayList bei Konvneck


Vench
26-12-2004, 15:49
Bei meiner Suche nach Programmansätzen zum Beispiel "Konvneck" aus der 3. Runde bin ich unter anderem auf folgendes gestossen:

static ArrayList KlammerZerlegen(String eingabe) //Zurueckgegeben wird ArrayList; zerlegt wird der hier implementierte String "eingabe"
throws Exception //Exception kann geworfen werden
{
StringTokenizer st = new StringTokenizer(eingabe);
ArrayList al = new ArrayList();
while(st.hasMoreElements()) {

String punkte = st.nextToken();

if(isKorrektGeklammert(punkte))
al.add(entklammere(punkte));
else
throw new Exception(
punkte + " nicht geklammert!");
}

return(al);
}

- Sorry, dass ich den Programmcode einfach reinkopiert hab, aber ich weiß nicht wie's anders geht...

Da ich selber auch schon daran gedacht hab mit dem StringTokenizer zu arbeiten, scheint mir dieser Ansatz ganz passend; allerdings hab ich das Problem, dass ich nicht weiß, was "ArrayList" eigentlich ist. :confused:

Diese Methode gibt doch so eine ArrayList zurück, oder? Was ist da der Vorteil bzw. könnte man stattdessen auch einfach ein normales array verwenden - da wüsst ich wenigstens worum's geht.

Interessant wär auch, ob der Ausdruck ".hasMoreElements()" offiziell ist (also so wie toUpperCase oder length()) oder ob es sich um einen frei gewählten Namen für eine Methde oder so (wie z.b. "isKorrektGeklammert" ) handelt.

Vielleicht könnt sich ja auch jemand melden, der das gleiche Beispiel (also Konvneck) bekommen hat und mir ein paar Tipps geben. Das wäre wirklich toll! Ich steh nämlich ziemlich an.

Danke für eure Hilfe,
Vench

Poppe
26-12-2004, 16:23
http://bran.hta-bi.bfh.ch/guides/javainsel3/javainsel_110002.htm#RxxxJava110002431ArrayList
http://www.torsten-horn.de/techdocs/java-collections.htm#NeueCollections
http://www.dpunkt.de/java/Referenz/Das_Paket_java.util/7.html
-> da steht so einiges über arrayList drinnen...

Jedes Exemplar der Klasse ArrayList vertritt ein Array mit variabler Länge. Der Zugriff auf die Elemente erfolgt über Indizes, zwar nicht über den Operator [], aber doch über Methoden, die einen Index als Parameter annehmen. Da in einer ArrayList jedes Exemplar einer von Object abgeleiteten Klasse Platz findet, ist eine ArrayList nicht auf bestimmte Datentypen fixiert. Dies ist ein Problem, denn beim Zugriff auf Elemente der Liste muss der Entwickler wissen, welchen Typ die Vektorelemente haben werden. Die Datentypen müssen also später wieder mit expliziten Typanpassungen angepasst werden. Dasselbe Problem haben wir bei anderen Datenstrukturen auch. Bei Java 1.5 wird die Technik des Unboxing das unnötig machen. ...hoffe das hilft dir weiter!

Interessant wär auch, ob der Ausdruck ".hasMoreElements()" offiziell ist (also so wie toUpperCase oder length()) oder ob es sich um einen frei gewählten Namen für eine Methde oder so (wie z.b. "isKorrektGeklammert" ) handelt.ja das ist eine "offizielle" methode, die einen boolean wert zurückgibt, wenn sich in einer Llste weitere elemente befinden

- Sorry, dass ich den Programmcode einfach reinkopiert hab, aber ich weiß nicht wie's anders geht... CODE Das ist mein Code.../CODE ...wobei rund um "CODE" und "/CODE" noch eckige klammer gehören! (vgl. QUOTE, /QUOTE)

Vench
26-12-2004, 16:26
Danke für die rasche Antwort! - und ja, es hilft weiter :thumb:

Werd mir die Links auch gleich mal ansehen

duracell
26-12-2004, 17:55
am besten schaust du einfach in der java api documentation nach. wenn du wissen willst, was die klasse ArrayList für methoden zur verfügung stellt, dann schaust du einfach in dieser klasse nach. verlass dich nicht allzusehr auf externe quellen, diese stützen sich meist noch auf java 1.4, wir arbeiten aber mit 1.5, da hat sich vor allem in bezug auf listen, wie auch ArrayList ist, einiges geaendert.

http://java.sun.com/j2se/1.5.0/docs/api/