n' abend,
sitze seit längerem mal wieder an java und bekomme nichts mehr hin.
1.)
Ich lese eine Textdatei in eine ArrayList. Jetzt sieht der Text in der Datei etwa so aus:
name/vorname/password/nummer/4/nein
in meiner System.out.println wird mir folgendes angezeigt:
[Student@19821f]
Warum??
2.)
wie kann ich einen (von mehreren) String aus meiner arrayList raussuchen (über den vergleich einer eingegebenen nummer) und auf den den 3.Wert (password) zugreifen?? (und den dann mit einer Eingabe vergleichen...)??
Bsp:
mein String aus meiner arrayList: Grünholz/Roberto/freibier/123456/4/ja
Jetzt suche ich nach einer Nr.- nämlich: 123456
Es soll mir oben genannter String gezeigt werden.
Wie der Name der ARRAYList ja schon sagt, ist es ein Array, besteht also aus mehreren Elementen. Schreibst du einfach System.out.println(deinearraylist) wird nur der Objektname/Addresse ausgebeben, es weiss ja nicht welches Element du willst. Schau dir mal die Javadoc von ArrayList an, und versuchs mit der get()-Methode
Es hört sich aber eher dannach an, also ob du bei einer Map besser aufgehoben wärst...
Bei einer Liste musst du ja immer die ganze Liste durchgehen und jede Nummer mit der gesuchten vergleichen. Bei einer Map könntest du anhand der Nummer direkt auf das Element zugreifen.
Um das Passwort zu bekommen bietet sich die split-Funktion eine Strings an.
Du solltest die Nummer vieleicht am Anfang jedes Strings schreiben.
Dann kannst du mit:
Java:
ArrayList<Strings> arrayListName =newArrayList<Strings>();String nummer;for(int i =1; i <ArrayListName.size(); i++){if( arrayListName.get( i ).startsWith( nummer )){// Hier halt alles beliebige einsetzen. In deinem Fall währe es ehrheblich leichter, wenn du die Infos nicht alle in eine Zeile schreiben würdest. Das muss man jetzt noch alles erst trennen und dann:System.out.println( arrayListName.get( i ).substring( x ));}}
Also wir können ja jetzt ruhig alle weiter raten und Tipps geben, aber ob`s das bringt? (mit so wenig Infos ???:L Und laut der Ausgabe sieht`s imo auch eher so aus als wenn er aus der einen Zeile ein Studenten-Objekt macht --> @TO: zu deinem "Warum?"toString)
# Zeige doch am Besten mal wie dein Code momentan aussieht... #
Wenn du wirklich schon die Zeile splittest und ein Studentenobjekt erstellst, könnte man evtl. den Weg von XHelp mit der Map gehen..Key = der 5. gesplittete Werte : Wert = das ganze Objekt
>>Es soll mir oben genannter String gezeigt werden.
Das könnte man ja dann wiederum so in der toString-Methode oder in irgendeiner anderen format-Methode oder wie auch immer implementieren...
Das mit der map ist denk ich auch eine ganz gute Idee. Muß nur mal rausfinden wie man sowas umsetzt.
Hier ist mein bisheriger Code in den die ArrayList, sowie eben eine solches "Auswahl-Sortier-Suchnachwas-Ding" rein soll. Dahinter steht eine klasse "Student" mit den jeweiligen Strings (name, vorname,...) sowie get- & set- Methoden.
- Gesplittet sind die Werte
- die sollten schon hintereinander stehen. ich denke das ist einfacher. ich will ja nicht nur den ersten Werte mit was vergleichen, sondern auch mal den 3. oder den 5.
Also wie schon beschrieben, würde ich jetzt gerne einen eingegebenen Wert mit z.B. "tokens[3]" vergleichen und wenn dieser Vergleich "true" ist, dann werden mir z.b. alle Strings aus der List angezeigt, bei denen das zutrifft.
Da man nicht weiß, wie die Klasse Student aufgebaut ist, nehme ich mal an, das sie Methoden bereit hält, um die entsprechenden Werte zu erfragen.
Also muss man nur über die Liste iterieren und den zu prüfenden Wert mit dem Suchkriterium vergleichen.
Wie der Name der ARRAYList ja schon sagt, ist es ein Array, besteht also aus mehreren Elementen. Schreibst du einfach System.out.println(deinearraylist) wird nur der Objektname/Addresse ausgebeben, es weiss ja nicht welches Element du willst. Schau dir mal die Javadoc von ArrayList an, und versuchs mit der get()-Methode