Announcement

Collapse
No announcement yet.

hashmap durchlaufen, fehlermeldung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • hashmap durchlaufen, fehlermeldung

    hallo! bei folgendem codestück tritt immer der fheler auf "acess not allowed: java util.map.entry" woran liegt es?

    <PRE>
    private HashMap artikelspeicher = new HashMap();
    public void erfassen (String id, String bez, String preis) {
    if (id == null) {
    return; }
    Artikel at = new Artikel(id, bez, preis);
    artikelspeicher.put(at.getId(), at);
    }

    public String alleArtikelLiefern ()
    {
    Iterator i = artikelspeicher.values().iterator();
    while ( i.hasNext() ) {
    Map.Entry entry = (Map.Entry) i.next();
    Artikel at = (Artikel)entry.getValue();
    }
    </PRE>

    es handelt sich um ene applikation wo bei einem servlet eingabe daten erfasst werden, und dann in der klasse Artikelverwaltung in einer hashmap gespeichert werden.

    servlet:
    <PRE>
    public void Artikelerfassen (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String id=request.getParameter("id");
    String bez=request.getParameter("bez");
    String preis=request.getParameter("preis");
    webshop.Artikel at = new webshop.Artikel (id, bez, preis);
    String str = getServletConfig().getInitParameter("artikeldaten" );

    </PRE>

  • #2
    Hallo Mel be<BR><BR>

    while{i.hasNext}(Artikel at = (Artikel)i.next;<BR>
    System.out.println(at.getId); //oder wie auch immer die Methode heisst.<BR>
    System.out.println(at.getName);<BR>
    System.out.println(at.getPreis);<BR>
    <BR>
    oder; (andere Liste)liste.add(at);
    );//return andere Liste<BR><BR>
    bei jedem i.next kriegst Du einen Artikel zurück. Aber die Schlaufe läuft weiter, also musst Du etwas tun mit Deinem Artikel.<BR><BR>
    Vielleicht bist Du besser bedient mit:<BR>
    public Artikel getArtikel(int id){<BR>
    Enumeration e = this.artikelspeicher.keys();<BR>
    while (this.e.hasMoreElements()) {<BR>
    int alias = (int)this.e.nextElement();<BR>
    if (alias == id) {<BR>
    this.at = (Artikel) (this.tablePot.get(alias));<BR>
    }<BR>
    }<BR>
    }<BR>
    return at;<BR><BR>
    So kannst Du gezielt einen Artikel abfragen.
    <BR>Mit int x = artikelspeicher.size(); kennst Du die Anzahl Artikel und kannst mit for(int i=0;i>x;i++){}
    <BR><BR>
    mfg DEBIA

    Comment


    • #3
      hat mich rausgehauen<BR>
      Mit int x = artikelspeicher.size(); kennst Du die Anzahl Artikel und kannst mit for(int i=0;i>x;i++){this.getArtikel(id);<BR>id += 1;}<BR> von aussen zugreiffen. //wenn die id++ erstellt wird.<BR><BR>
      mfg DEBIA

      Comment


      • #4
        hallo mel be,

        dein problem liegt in der tatsache, dass die collection die "values" enthält und keine Map.Entry. also:

        <pre>
        Artikel at = (Artikel) i.next();
        </pre>
        und es sollte funzen

        gruß volke

        Comment

        Working...
        X