BIG_M Geschrieben 19. März 2010 Geschrieben 19. März 2010 Hallo zusammen! Ich mache seit einiger Zeit meine ersten Schritte in Sachen Java. SOO vieles ist noch unklar aber ich lerne täglich dazu. Als Unterstützung dient mir dabei dieses Tutorial: Java Tutorial interaktiv - Programmieren lernen mit Java Nun bin ich dort bei einer Aufgabe 'Bankkonto'. Ich denke der Code ist für erfahrene Leute nicht schwer zu lesen und man weiss schnell worum es geht.daher erläutere ich jetzt die einzelnen Schritte nicht.Mir geht es um eine spezielle Sache. Hier erstmal der bisher fertige Code import java.util.*; class Konto { String inhaber; String kontonr; double kontostand; Konto(String strI, String strN, double k) { inhaber = strI; kontonr = strN; kontostand = k; } void aktuell() { System.out.println(kontonr + ": " + inhaber + "; " + kontostand + " Euro"); } void einzahlen(double betragE) { kontostand = kontostand + betragE; } void auszahlen(double betragA) { kontostand = kontostand - betragA; } } public class Bankkonto { Konto konto1 = new Konto("Martin Meier", "123456789", 683.24); Konto konto2 = new Konto("Frank Schulz", "246808642", 1432.48); public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("HERZLICH WILLKOMMEN!?"); System.out.println("Bitte geben sie ihre Kontonummer ein."); String antwort = sc.next(); Der Benutzer soll jetzt seine Kontonummer eingeben und das dazu passende Konto soll gefunden werden.Wie mache ich das?Wie vergleiche ich den String vom Benutzer mit dem String der im Objekt konto1 zugewiesen wurde?Wenn ich die equals()_methode verwende (ist bisher die einzige mir bekannte Methode zum vergleichen von Strings)muss ich das ganze mit if/else anweisungen verbinden. Das ist aber viel schreibkram und bei vorgestellten 1000 oder mehr Konten absout ineffizient. Es gibt bestimmt einen besseren Weg. Vielleicht kann mir jemand von euch auf die Sprünge helfen. MfG Zitieren
flashpixx Geschrieben 19. März 2010 Geschrieben 19. März 2010 Wie vergleiche ich den String vom Benutzer mit dem String der im Objekt konto1 zugewiesen wurde?Wenn ich die equals()_methode verwende (ist bisher die einzige mir bekannte Methode zum vergleichen von Strings)muss ich das ganze mit if/else anweisungen verbinden. Das ist auch die korrekte Methode, etwas anderes wird nicht so direkt funktionieren Das ist aber viel schreibkram und bei vorgestellten 1000 oder mehr Konten absout ineffizient. Es gibt bestimmt einen besseren Weg. Vielleicht kann mir jemand von euch auf die Sprünge helfen. MfG Stichworte wären: Schleife oder etwas eleganter eine Hashmap Zitieren
BIG_M Geschrieben 19. März 2010 Autor Geschrieben 19. März 2010 Das ging ja fix. Danke für die schnelle Antwort. Hm, von einer Hashmap habe ich noch nichts gehört/gelesen. Ich habe mal was von Hashwerten gelesen in Zusammenhang mit Dateien. Aber ansonsten keinen blassen Schimmer.Werde mich mal damit beschäftigen.Was das Stichwort Schleife betrifft, da habe ich gerade eine Idee.Ich versuche das mal umzusetzen und melde mich dann wieder.bis dahin Zitieren
flashpixx Geschrieben 19. März 2010 Geschrieben 19. März 2010 Naja nehmen wir mal an Du hat 1.000.000 Datenobjekt und Du suchst genau eins, anhand der Kontonummer und dummerweise ist das Datenobjekt, was Du suchst das letzte, d.h. Du hast 999.999 Objekte "umsonst" geprüft. Eine Hashmap ist eine "Art Sortierung", d.h. wenn Du nun ein neues Objekt in sie einfügst, dann geschieht das anhand eines Schlüssels, also dem Hash. Der Hash darf in der Map z.B. nur genau einmal vorkommen. Wenn Du nun also so eine Hashmap verwendest, dann würde Dein Hash eben die Kontonummer sein. Wenn Du nun eben zu der Kontonummer das passende Objekt suchst, dann sagst Du nur der Hashmap "gib mir das passende Objekt anhand der Kontonummer zurück". Zitieren
BIG_M Geschrieben 19. März 2010 Autor Geschrieben 19. März 2010 also ich habe herrausgefunden das eine do_while schleife am geeignetsten wäre für diese Aktion.nur wie sage ich dem Programm jetzt das es die Variable 'kontonr' von jedem einzelnen Kontoobjekt solange durchsuchen soll bis er das richtige Objekt/Konto gefunden hat?denke ich bis hierhin richtig, stelle ich die richtigen Fragen?oder is das der falsche weg? Zitieren
flashpixx Geschrieben 19. März 2010 Geschrieben 19. März 2010 Du musst Deine Kontoobjekte in einer Liste halten und diese dann durchlaufen Zitieren
BIG_M Geschrieben 19. März 2010 Autor Geschrieben 19. März 2010 Ich merke das mein jetziges Wissen wohl noch nicht ausreicht. Ich weiss worauf es hinaus geht aber ich kann das noch nicht umsetzen. Eigentlich war die Sache mit dem Kontonummernvergleich gar kein Bestandteil der Aufgabe. Ich dachte nur das es praktisch wäre und ich das mit meinem jetzigen Wissensstand hinbekomme. Falsch gedacht. Nun gut, ich versuche ertsmal alles so hinzubekommen wie tatsächlich dort gefordert und baue die Sache später ein. Ich werde hier bestimmt öfter mal reinschauen und Fragen haben.Superschnelle Antworten hier.Bin begeistert. :uli Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.