Wenn du mit append(o) Elemente zur Liste hinzufügst wird doch first gesetzt. Dann kannst du mit toFirst() current mit dem ersten Element belegen.
Java - neue und gute Antworten - Seite 5
-
0Java, Abitur "listen klasse", wie kann man denn ein Objekt zum aktuellen Objekt machen?Antwort von
ArchEnemaArchEnema
-
0Java, Abitur "listen klasse", wie kann man denn ein Objekt zum aktuellen Objekt machen?Antwort von
Infam0usLightInfam0usLight
Wo genau soll die Methode implementiert werden, innerhalb der List Klasse, oder in einer neuen Klasse?
Hier hab dir mal ne Beispiellösung geschrieben:
Kann man natürlich noch schöner gestalten und muss nicht unbedingt iterativ, sondern kann auch rekursiv die Aufgabe erfüllen. Ich wollt die aber erst mal die einfachste Lösung aufzeigen, wie du das schlussendlich realisiert bleibt dir überlassen
-
0Java, Abitur "listen klasse", wie kann man denn ein Objekt zum aktuellen Objekt machen?Antwort von
Sascha211Sascha211
Auf das aktuelle Object wird mit der Methode getObject() zugegriffen (Zeile 129), diese Methode liefert null, falls keine aktuelles Objekt vorhanden ist. Ob es ein aktuelles Objekt gibt, kannst Du mit hasAccessU() [Zeile 85] erfragen.
toFirst() setzt die Liste auf ihr erstes Element zurück, danach kann man durch die Liste durchgehen (mit next() ) und alle Elemente nacheinander lesen.
Kommentar von
LirafoliLirafoli das ist mir alles klar, aber wenn ich eine neue liste erstellt habe + einige objekte in der liste, dann habe ich noch kein aktuelles objekt und toFirst usw. sollte zwar eigentlich das erste objekt zum aktuellen objekt machen, aber wenn ich das mache und mir anschließend mit inspect angucke was das aktuelle objekt fürn wert hat, steht da immer nur null.
-
-
0Java, Abitur "listen klasse", wie kann man denn ein Objekt zum aktuellen Objekt machen?Antwort von
Chroz192Chroz192
Ist das generische Programmierung? Falls ja, musst du, zumindest in C++, mit iteratoren arbeiten.
Bsp (C++):
list<int> List; list<int>::iterator ListenIter; //ListenIterator for(int i=0;i<=7;i++) { List.push_back(5 * i); //Liste füllen } //Liste ausgeben: Dereferenzierungsoperator * nicht in Java!! for(ListenIter = List.begin(); ListenIter != List.end(); ListenIter++) { cout << *ListenIter << endl; } //neuer iterator + find methode list<int>::const_iterator cListenIter = find(List.begin(), List.end(), 10); //Konstanter ListenIterator zeigt auf Position, wo 10 zum ersten mal gefunden wurde, ansonsten auf end() if(cListenIter != List.end()) { cout << "Element mit Wert " << *cListenIter << " gefunden!" << endl; }Kommentar von
Chroz192Chroz192 Soll dir nur das Prinzip von Iteratoren erklären :-)
Kommentar von
LirafoliLirafoli naja, das prinzip von diesem "zeiger" wenn ichs mal so nennen darf, hab ich schon verstanden. aber mir gehts halt darum, das ich den nicht bewegen kann bzw. das er nie auf ein objekt zu zeigen scheint, auch wenn ich mehrere erstellt habe und dann "toFirst" o.ä. benutze.
Kommentar von
simsch1996simsch1996 zeiger gibt es in java nicht! es gibt nur referenzen und die sind wirklich unflexibel^^
Kommentar von
LirafoliLirafoli unser lehrer hat das mit einem "zeiger" verglichen, der immer auf ein bestimmtes objekt in der liste "zeigt", mit diesem objekt stellt man dann halt irgendwelche sachen an. aber bei mir ist der zeiger schon mal irgendwie gar nicht vorhanden und lässt sich auch nicht mit Tofirst usw. herbei holen :(
Kommentar von
simsch1996simsch1996 wie ich auch oben geschrieben hab, ohne deinen quelltext lässt sich das schwer einschätzen ;) aber der unterschied zwischen zeiger und referenz ist nicht unerheblich, auch wenn es gerade glaube ich nicht ausschlaggebend ist ;)
Kommentar von
LirafoliLirafoli was ist denn eine referenz?
Kommentar von
simsch1996simsch1996 in java ist das relativ einfach, es ist nämlich das von dem du als zeiger sprichst ;) eine referenz in java verweist einfach auf etwas, nicht mehr und nicht weniger^^
wenn du von zeigern sprichst enthält ein zeiger die speicheradresse eines objekts^^ dieser zeiger kann dereferenziert werden um mit dem objekt an sich zu arbeiten. aber eine referenz ist nur ein aliasname des objekts auf basis der speicheradresse ;)
Kommentar von
simsch1996simsch1996 hier ists gut erklärt http://www.programmiersprachen.de/forum/board26-unsere-programmierboards/c/3247-unterschied-referenz-zeiger/?s=1a730a74dbcb36733a21c6d7b3c95deac77608d1
Kommentar von
Chroz192Chroz192 Java ist einfache eine unattraktive Sprache, mehr fällt mir dazu nicht ein. Soetwas sollte man nicht an Schulen lehren.
Kommentar von
LirafoliLirafoli was denn dann für eine sprache?
-
0Wie kann ich minecraft mehr RAM zuweißen? Es stürtzt ständig ab!Hilfreichste Antwort von
TheTop10TB Du musst Minecraft nicht unbedingt mehr RAM zuweisen es reicht schon aus wenn du Grafikeinstellungen im Spiel veränderst: Sichtweite:Winzig Grafik:Schnell Weiche Beleuchtung:Aus Dann installiere dir noch ein 8 Pixel Texture Pack und installiere dir Optifine: http://www.minecraftforum.net/topic/249637-125-optifine-hd-b1-fps-boost-hd-textu... MFG TheTop10TB
-
0Java-Programm in Eclipse mit HTML verknüpfenAntwort von
simsch1996simsch1996
http://www.java.com/de/download/faq/java_webstart.xml
wenn es ein normales programm ist ist das wohl die lösung ;)
ansonsten applets, wie schon erwähnt^^
-
1Java, Abitur "listen klasse", wie kann man denn ein Objekt zum aktuellen Objekt machen?Antwort von
simsch1996simsch1996
was isn das für ne komische sache? ;) kannst du mal nen link posten? dazu muss es eine doku geben, das kann sonst kein mensch wissen ;)
Kommentar von
LirafoliLirafoli http://www.standardsicherung.nrw.de/abitur-gost/fach.php?fach=15
hier müsste man sich dann
Quelltexte zu den Materialien ab 2012 - Java-Version 1.2 - [ZIP, 145 kB] - 9.01.2012
runterladen. da sind dann auch diese listen usw. dabei.
Kommentar von
simsch1996simsch1996 also erstmal hast du mein vollstes mitleid^^ ihr arbeitet echt mit diesem dr*cks bluej!?
okay wenigstens sind die leute dann so sozial, aufwendige standardimplementierungen zur verfügung zu stellen ;)
ich sag dir jetzt mal nicht zu viel, denn das wird im abitur eine der wichtigsten sachen sein, die doku zu lesen und zu verstehen, vor allem nachdem du da ja auf dem papier arbeiten musst ;)
ich habs jetzt grade mal angeschaut, und wenn ich das so sagen darf, das ist totaler mist^^ zeig das deinem lehrer, nach meinem ermessen ist die doku am a*sch^^
und dieses client-server dings hab ich mit 13 in c# gebaut, wollt ich nur noch dazusagen ;)
du hättest jetzt die möglichkeit die javadoc nochmal komplett neu zu erstellen oder du schlägst dich durch die comments im quelltext ;) hab ich jetzt keine zeit aber wenn ich dazukomme schreib ich nochmal ;)
Kommentar von
LirafoliLirafoli naja, also ich bin im moment in der 10 und werde mich da wohl nicht allzu bald im abi damit rumschlagen müssen. unser lehrer dachte wohl, nach arrays + arraylists würde das ganz gut in die thematik passen.
Kommentar von
simsch1996simsch1996 ich bin auch in der 10. ;) aber das bayerische info-abi macht iwie mehr sinn^^ :D
ich habs jetzt doch noch kurz durchgeschaut^^ es ist eine ganz normale liste^^ kannst du mal deinen quelltext auf patebin o. ä. packen, vlt kann man sehn was schiefläuft ;)
Kommentar von
LirafoliLirafoli was ist patebin?
und mein quelltext existiert noch praktisch nicht, unser lehrer wollte uns nur in dieses abitur listen zeugs einführen, wir sollen ne liste erzeugen mit zahlen, und methoden die die anzahl der zahlen und die summe der zahlen zurückliefern.
in dem code steht mehrfach was von "tail", ich vermute mal das ist der zeiger. aber mit dem dingen lässt sich original gar nichts anfangen.
Kommentar von
simsch1996simsch1996 sorry, ich hab n s vergessen ;) soll pastebin heißen (http://pastebin.com/)
du musst doch irgendeinen quellcode haben, sonst hättest du ja nichts was nicht funktioniert ;) ich kann nur beim besten willen nicht sagen woran das liegt weil ich zwar die liste kenne aber nicht weis wie du sie benutzt ;)
Kommentar von
Infam0usLightInfam0usLight Ohne mich jetzt groß mit dem ganzen Thread hier beschäftigt zu haben, frag ich einfach mal:
Ist deine Aufgabe jetzt lediglich eine eigene Implementierung einer ArrayList oder generell einer List zu schreiben? Wenn nicht, würde ich dich darum bitten eine präzise Aufgabenstellung zu posten.
Kommentar von
simsch1996simsch1996 es geht so weit ich das überblicke um die verwendung einer bereits fertigen implementierung eines solchen liste^^
Kommentar von
LirafoliLirafoli ich soll:
eine liste mit zahlen 1-10 (1-10 nur zu demonstrationszwecken) erzeugen (aber keine array list oder so, sondern mit diesem abitur quellcode).
eine methode implementieren, die die anzahl der bisher in die liste eingetragenen zahlen zurückliefert
eine methode implementieren, die die summe aller bisher eingetragenen zahlen zurückliefert.
Kommentar von
Infam0usLightInfam0usLight Ist es zwingend notwendig, dass du dich an die Vorlage der "abitur klasse" hältst, oder darfst du auch eine eigene Implementierung vornehmen?
Ohne den Quellcode gesehen zu haben, ist das vorhaben ja relativ einfach. Wenn die Klasse selbst keine Methode bereitstellt, die die Anzahl der Objekte zurückliefert, oder durch diese iteriert, hast du nun zwei Möglichkeiten dies zu verwirklichen.
Die einfachste, wobei nicht unbedingt eleganteste Möglichkeit: Du hast eine count variable in der Klasse, die du jenachdem ob ein Objekt hinzugefügt wird inkrementierts(erhöhst) oder dekrementierst. Diesen count gibt du dir über eine einfache getter-methode zurück.
Du schreibst eine Methode, die jeden Index in der List abfragt und prüft ob ein gültiges Objekt vorhanden ist. Das Ergebniss der gültigen Objekte lässt du dir zurückgeben.
eine methode implementieren, die die summe aller bisher eingetragenen zahlen zurückliefert.
Dies sollte, sofern du dich an 2. hältst ohne Probleme zu verwirklichen sein.
Ich werde mir gleich noch den Quellcode der Klasse angucken, um zu sehen ob meine Vorschläge so überhaupt umsetzbar sind.
Kommentar von
simsch1996simsch1996 es ist etwas tricky mit der klasse etwas zu erreichen, aber du könntest in die einzelnen methoden exceptions einbauen oder mit einem debugger z.b. in eclipse arbeiten^^
grundsätzlich solltest du ja nach dem konstruktor eine leere liste vorfinden in die du dann per append() 10 integer anhängst (in einer schleife). so weit gemacht? und toFirst()?
Kommentar von
Infam0usLightInfam0usLight es ist etwas tricky mit der klasse etwas zu erreichen, aber du könntest in die einzelnen methoden exceptions einbauen oder mit einem debugger z.b. in eclipse arbeiten^^
Exceptions dürfen aber keines Falls zur Steuerung des Programmflusses dienen ;)
Und die List ist ja furchtbar schlecht konzipiert! "tricky" ist gar kein ausdruck. Wer benötigt so eine Klasse?...
Nichts desto trotz werd ich mich mal um eine Lösung kümmern.
Kommentar von
simsch1996simsch1996 das mit den exceptions war eher zum debugging in bluej gedacht ;) nicht als persistente lösung sondern nur um angaben über fehlerursachen zu bekommen die man ohne vernünftigen debugger nicht sieht^^
Kommentar von
LirafoliLirafoli @ Infam0usLight
ja, ich muss das mit dieser abitur listen klasse machen.
@simsch ja, ich finde eine leere liste vor, in die ich dann 10 zahlen eintragen kann, diese kann ich mir auch über inspect angucken, allerdings steht der zeiger immer auf null, auch wenn ich toFirst oder so verwende.
Kommentar von
Infam0usLightInfam0usLight Hab dir ne Antwort geschrieben. Erstell dir einfach ne neue Klasse und führ den Code meinetwegen im Konstruktor aus. Sollte ohne Probleme funktionieren ;)
Bei weiteren Fragen einfach melden.
Kommentar von
Infam0usLightInfam0usLight doppel post
-
-
0Wie kann ich minecraft mehr RAM zuweißen? Es stürtzt ständig ab!Antwort von
SomOneSomOne
Probier das mal aus: http://www.minecraftforum.net/topic/249637-125-optifine-hd-b1-fps-boost-hd-textu...
Wenn du kein englisch kannst, google mal oder such auf youtube ne deutschssprachige anleitung dazu ...
-
0Wie kann ich minecraft mehr RAM zuweißen? Es stürtzt ständig ab!Antwort von
DDORFER Windows Task Manager --> Prozesse --> den minecraft Prozess suchen (ist glaub ich iwas mit java....) ---> Priorität festlegen
Generell mehr RAM zuweisen kann man glaub ich nicht, das sollte aber normalerweise auch helfen
-
0felderdeklarationAntwort von
Infam0usLightInfam0usLight
Wo die Klammern bei der Deffinition des Arrays stehen, steht dir frei. Bei der Initialisierung müssen sie nach der Angabe des Types folgen.
Richtig:
int[] foo = new int[10]; //oder auch int foo[] = new int[10];Falsch:
int foo[] = new foo[10];Macht ja auch keinen Sinn. Du würdest dem Compiler hiermit sagen, dass er ein int-Array mit dem Namen foo deffinieren soll, schreibst bei der initialisierung aber, das er ein Array vom typen foo erstellen soll, den er soweit nicht selber irgendwo deffiniert, nicht kennt.
Kommentar von
chiccolo1 danke
-
0felderdeklarationAntwort von
MarkGreeneMarkGreene
Dein erstes Beispiel funktioniert so, das zweite nicht (zumindest nicht so wie du es willst).
Der Grund ist das zuf nach dem new. Denn dort wird immer der Typ erwartet, die die Objekte des Felds/Arrays haben sollen und da du ein int-Array willst, muss dort auch int stehen.
Die Klammersetzung ist Geschmackssache, es geht grundsätzlich so:
typ[] name = new typ[groesse]oder so:
typ name[]= new typ[groesse]Da solltest du dich trotzdem für eine Variante entscheiden und nicht in derselben Klasse immer wechseln, denn das ist verwirrend für alle die deinen Code lesen, dich eingeschlossen.
Kommentar von
chiccolo1 danke
-
1felderdeklarationAntwort von
dergutekoenigdergutekoenig
Und von welcher Programmiersprache du sprichst, sollen wir erraten?
Die Klammernsetzung ist, davon abgesehen, Geschmacksache (sofern die jeweilige Programmiersprache beide Varianten zulässt).
Kommentar von
chiccolo1 ich spreche von java auf bluej
Kommentar von
dergutekoenigdergutekoenig Wie gesagt, falls Java beides zulässt (das weiß ich grade nicht auswendig), ist es Geschmacksache.
Die einen benutzen int[] name, um deutlich zu machen, dass es sich um ein int-Array handelt, die anderen benutzen int name[], um deutlich zu machen, dass name ein Array ist.
Kommentar von
chiccolo1 könntest du mal nachsehen
Kommentar von
dergutekoenigdergutekoenig Was nachsehen? Ob bei Java beides geht? Ähm... probier's doch einfach aus? +kopfschüttel+
-
0Java bracht mehr ram! Bitte helft mir!Antwort von
TrueColorGbTrueColorGb
Du musst java beim Start über die Kommandozeile mitgeben, dass es für die Anwendung mehr Speicher reservieren soll.
Es gibt allerdings auch einen zentralen Ort, an dem du die Einstellung tätigen kannst: http://www.auditmypc.com/java-memory-xmx512.asp Diese darf dann natürlich nicht vom betreffenden Programm überschrieben werden.
-
0Java: Prüfen ob Programm mit java.exe oder javac.exe gestartet wurdeAntwort von
Infam0usLightInfam0usLight
Dann mal ne ernstgemeinte Gegenfrage meinerseits:
Wieso genau möchtest du das machen? Die Konsole dient eigentlich nur dem Entwickler um Fehler im Programm zu finden, oder andere Meldungen darzustellen. Im fertigen Programm wird sie, bis auf wenige Aussnahmen nie verwendet.
Schildere uns doch einfach was du genau machen möchtest und ich bin mir sicher man wird einen besseren Ansatz für das Problem, sofern es eins ist, finden.
-
0cracked MC mit 64 bit javaAntwort von
Infam0usLightInfam0usLight
Da du ja scheinbar meine Antwort zu deiner ersten Frage, zu dem Thema, gestern nicht kommentieren magst hier mal ein Link welcher das Problem behandelt:
http://www.minecraftforum.net/topic/57538-mac-guide-106-how-to-make-minecraftapp...
Achja, der link taucht gleich als erstes Suchergebniss unter google auf, wenn man dein problem googelt...
Kommentar von
SchlafanzugabcSchlafanzugabc das is das erste mal das ich sehe das du mir ne antwort gibst :O
Kommentar von
Infam0usLightInfam0usLight Huch tatsächlich. Jemand hat gestern nämlich die gleiche Frage gestellt, war auch Fragant da dacht ich das wärst du :O
So zieh ich meine Aussage natürlich zurück...
Kommentar von
SchlafanzugabcSchlafanzugabc achso :D
und eins habe ich auch vergessen zu erwähnen:
ich habe windows 7 kein mac also funktioniert der link leider nicht :)
trozdem danke
Kommentar von
Infam0usLightInfam0usLight Die 64bit Version von Java hast du installiert?
Dann versuchs mal hiermit:
Kommentar von
SchlafanzugabcSchlafanzugabc danke nur muss ich das auch auf den desktop mache?
kann ich nicht irgendwie in roaming und dann da was ändern und an meinen(cracked)minecraft launcher was ändern?
ansonsten mache ich das so wie im video beschrieben :D
-
0Java: Prüfen ob Programm mit java.exe oder javac.exe gestartet wurdeAntwort von
SyFed sry, meinte javaw.exe
-
1Java: Prüfen ob Programm mit java.exe oder javac.exe gestartet wurdeAntwort von
Kruemelpastete javac ist nur für die Kompilation von Java-Dateien zuständig, damit lassen sich keine Programme starten.
Kommentar von
SyFed sry meinte javaw.exe
Kommentar von
Kruemelpastete Wenn ein Task vorhanden ist, dann kannst du - bei Windows zumindest - im Task Manager über einen Rechtsklick auf den Task zum Prozess wechseln, der dann entweder java.exe oder javaw.exe heisst. Ich denke, so sollte das funktionieren.
Aber was ist eigentlich der Unterschied?
Kommentar von
SyFed javaw.exe ist mit Konsole
Aber wie finde ich das in java raus? Einfach den Tasknamen abfragen oder gibts dafür noch andere methoden?
Kommentar von
Kruemelpastete Irgendwie kann das nicht ganz stimmen, dass nur aus der Konsole gestartete Programme mit javaw ausgeführt werden. Beispielsweise zeigt mir der Taskmanager bei Eclipse, was ja mit einer EXE gestartet wird, auch javaw.exe an.
Kommentar von
SyFed alter schonwieder vertan -> javaw ist ohne konsole -.-
-
0Minecraft funktzt nich? Acer Predator
Guten Tag,
wichtig ist welche Hardware du genau verbaut hast denn von deinem Rechner habe ich allein in meinem Laden rund 3 verschiedene Modelle stehen. Also am besten mal Hardware hinschreiben, dann kann man dir sicherlich weiter helfen.
Gehe ich mal von genug Leistung aus (BF3), Treiber neu installieren, Programme schließen die nicht sein müssen. Spiel patchen, Spiel neu installieren.
-
0Minecraft funktzt nich? Acer PredatorAntwort von
Fabilord98Fabilord98
VL keine Internet Verbindung, neuestes Java installiert ??
Kommentar von
johannmasterjohannmaster Internet ist verbunden, ich zock ja auch BF3 online
Hab D-Lan
in einer neuen klasse, die dann eine liste erstellt.
Na dann hab ich dir sogar die komplette Lösung geschrieben ;)
Packs dir noch in ne schöne Methode und fertig biste.
danke schonmal, aber was ist bei dir o? und was genau ist integer? (hab noch nicht lange informatik^^) oder ist damit i gemeint?
Mit o speichere ich mir eine Refferenz des aktuellen Objektes in der Liste.
Integer ist der primitive datentyp int in Objektform.
Quasi eine Zahl in Form eines Java-Objekts.
Wenn du weitere Fragen haben solltest, schreib mich am besten an, wird sonst etwas viel für diesen Thread hier ;)