• Hallo alle zusammen,
    hab ein problem mit meinem Code.
    Also hier einen kurze Erklärung zu meinem Problem. Ich will mit meinen Programm eine Spalte aus einer Excel Datei auslesen, inder Namen stehen die auch mehrfach aufgeführt sind, diese Namen sollen gezählt werden und dann letztendlich nach Programm durchlauf ausgegeben werden. (zb: 13xZimmerman, 8xMaier, 18xTobias,etc)
    Dies funktioniert bei meinem Programm schon ohne Probleme auch schon die Ausgabe in eine Excel Datei.

    So und jetzt zu meinem Problem. ich wil die ausgelesenen Werte mit Namen in eine Reihenfolge bringen, sozusagen das die Namen nach der Anzahl der Vorkommnisse sortiert wird. egal ob absteigend oder aufsteigend. (Die liste der Namen wächst stetig und es kommen auch immer neue namen dazu, sodass sich die reihenfolge der eingelesen Namen stetig ändern wird.

    Ich habe es schon mit einer JTable probiert aber, aber dann hab ich mir das ganze prog geschossen :)

    also ich hoffe das mir jemand von euch helfen kann und mir evtl sogar schon den verbesserten code posten kann.

    thx benni




    die API zum Excel-File auslesen gibts hier: falls ihr sie benötigt http://jexcelapi.sourceforge.net/resources/java…docs/index.html

    und im anhang findet ihr die namensdatei


    thx benni

  • wie knoten löschen? was meinst damit?
    ich muss ja die namen jedes mal auch neu auslesen da hast du recht, da sie sich ja verändern in ihrer vielzahl, jetzt will ich sie aber geordnet haben also in einer liste wie du schon richtig gesagt hast. aber wie???

    steh voll aufm schlauch

  • ich wil die ausgelesenen Werte mit Namen in eine Reihenfolge bringen, sozusagen das die Namen nach der Anzahl der Vorkommnisse sortiert wird.


    Implementiere das Comparable-Interface: http://java.sun.com/j2se/1.5.0/doc…Comparable.html
    Da ist eine Methode drin, mit der du definieren kannst, wann eines deiner Paare größer oder kleiner ist als ein anderes. Wenn du das definiert hast, kannst du eines der Standardsortierverfahren von Java verwenden.

    *plantsch*

  • und wenn du das Comparable interface implementiert hast kannst du die statische Methode Collections.sort(Collection c) verwenden und musst keinen eigenen sortiercode mehr schreiben.

    mfg
    s.

    weiters: als kleiner optimierungstipp (vor allem wegen lesbarkeit etc):


  • Ok danke schonmal, hab das mit dem compareable schon einmal ausprobiert, aber hatte a noch meine probleme...
    werde mich da jetzt aber noch einmal reinlesen und hoffe das es klappt, weil ich schon länger zeit an dem ding rumache.

    aber wie gesagt nochmal thx auch für den formatierungs hinweis, weil manchmal sieht man den wald vor lauter bäumen nicht ^^ oder machts umständlicher als nötig

  • Najo, nach Anzahl der Vorkommnisse ist etwas komplizierter als alphabetisches Sortieren. Da müsstest die Vorkommnisse in eine extra-Spalte reinschreiben, und beim Sortieren etwas à la

    (v=vorkommnisse, n=name)

    Code
    if (v1<v2) return -1;
    if (v1>v2) return 1;
    if (v1==v2{
      return n1.compareTo(n2);
    }

    machen.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • ja genau sowas in der art mache ich gerade, hab nur mittlweile schon festgestellt, dass jetzt mit der namenszuordnung nicht mehr klappt..
    bin total ratols im mom und wäre sogar für fertigen code schon dankbar obwohl ich nichts dabei lerne dann ^^

  • Ach was so schlimm ist das Programm dann auch wieder nicht :) hab mir größte mühe gegeben. Und bin leider noch nicht so gut/fähig, den letzten Schritt zu machen, um das Programm fertig zu stellen. Wäre echt für Hilfe dankbar. Evtl kannst du ja mal 5min opfern und was hinzimmern??

    vg benni

  • hey,

    anstatt jemanden zu bitten, deinen (fehlerhaften) code von oben zu korrigieren, könntest du nochmal deine momentane Lösung plus die Probleme die dabei auftreten schildern. Dann kann man dir weiterhelfen ohne, dass jemand anderes dein Programm fertigstellt.

    greetz
    s


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!