Avatar billede celal Nybegynder
20. marts 2008 - 19:26 Der er 17 kommentarer og
1 løsning

Returnere et object fra en liste

Jeg har en List collection som ineholder Product objecter, og disse product objecter har følgende variabler:
Product(Id, name, price, unit)

Hvordan kan jeg få returneret et bestemt object fra Listen som eks: har id=11. Er der nogen måder at hente objectet uden at skulle gennemløbe alle objecterne i listen?
Avatar billede arne_v Ekspert
20. marts 2008 - 19:33 #1
Med List/ArrayList skal du gennemloebe for at finde en bestemt vaerdi.

Selvom .indexOf kan skjule det.

Hvis du vil slaa direkte op skal du bruge en Map/HashMap.
Avatar billede celal Nybegynder
21. marts 2008 - 16:24 #2
Jeg skal bruge det i en JSP side. Er der nogen måder jeg kan overføre det product object, som skal slettes?

<html>
  <head>
    <title>product list</title>
  </head>
  <body> 
    <form action="basketAction.do" method="POST"> 
   
    <table border="0" cellpadding="0" width="50%" bgcolor="#FFFFFF">
    <tr>
        <td><b>PRODUCT ID</b></td>
        <td><b>NAME</b></td>
        <td><b>UNIT PRICE</b></td>
        <td><b>UNIT</b></td>
        <td><b>QTY</b></td>
        <td></td>
    </tr>
    <tr>
             
<%
//Map<Integer, OrderLine> basketList = (Map<Integer, OrderLine>)session.getAttribute("basket");
Map basketList = (Map)session.getAttribute("basket");
Iterator i = basketList.entrySet().iterator();
//for (Iterator<Integer> i = basketList.keySet().iterator(); i.hasNext(); ){
while(i.hasNext()){
    Map.Entry entry = (Map.Entry)i.next();
    OrderLine ord = (OrderLine)entry.getValue();   
    //OrderLine ord = (OrderLine)i.getNext();
    Product pro = ord.getProduct();
%>
          <td><b><%=pro.getProductId()%></b></td>
          <td><b><%=pro.getName()%></b></td>
          <td><b><%=pro.getUnitPrice() %></b></td>
          <td><b><%=pro.getUnit() %></b></td>
          <td><b><input type="text" name="<%=pro.getProductId()%>" value="<%=ord.getQuantity()%>" size="3"></b></td>
          <td><a href="basketDeleteProduct.do?id=<%=ord.getProduct()%>">DELETE</a></td>         
      </tr>            
<%}%>           

    </table>     
       
        <input type="submit" name="action" value="UPDATE">     
          <input type="submit" name="action" value="CHEKOUT">
          <input type="button" name="action" value="CONTINUE SHOP" onClick="java script:location.href='shop'" >

    </form>

  </body>
</html>
Avatar billede arne_v Ekspert
24. marts 2008 - 03:16 #3
Ja - det er måden.

Men til det brug kan du godt nøjes med med List<OrderLine>.

Iøvrigt vil jeg da varmt anbefale brug af JSTL.
Avatar billede celal Nybegynder
08. april 2010 - 13:45 #4
Lukker
Avatar billede arne_v Ekspert
09. april 2010 - 02:17 #5
Og du tog selv point fordi??
Avatar billede celal Nybegynder
09. april 2010 - 09:47 #6
Fordi der ikke var nogen som lagde et svar, men kun kom med kommentar. Jeg er i gang med at ryde op i alle mine spørgsmål, så jeg har desværre ikke tid til at spørge om der er nogen som vil indlægge et svar så jeg kan til dele point. Dem som har svaret har jeg tildelt point, og de spørgsmål som ikke indeholder nogen svar, har jeg tildelt pointene til mig selv, så spørgsmålet blev lukket.
Avatar billede arne_v Ekspert
09. april 2010 - 15:50 #7
Du har ikke tid.

Forventer du at vi andre har tid til at besvare dine spoergsmaal?
Avatar billede celal Nybegynder
09. april 2010 - 17:10 #8
Det er friviligt at besvare, ingen som tvinger. Men du kan jo bare svare isteden for at komme med kommntar,det må vel være faire at jeg lukker spørgsmål uden svar som har ligget åben i 2 år
Avatar billede arne_v Ekspert
09. april 2010 - 17:38 #9
Det er ganske rigtigt frivilligt at svare.

Og hvis du ikke vil bruge de ca. 2 x 10 sekunder det tager at få lukket ordentligt, så er det lidt svært at se hvorfor nogen skulle bruge tid på at besvare dine spørgsmål.

Og nej jeg synes heller ikke at det er specielt fair.
Avatar billede celal Nybegynder
09. april 2010 - 22:29 #10
Jeg kan godt forstå du er skuffet over det, og er også villig til at tildele dig pointene. Men blandt en del af mine gamle spørgsmål, havde jeg nogle uden svar, og dem valgte jeg at lukke. Jeg er villig til at åbne spørgsmålet igen hvis man kan. Det er ikke fordi jeg vil prøve at snyde nogen :).
Avatar billede arne_v Ekspert
11. april 2010 - 19:24 #11
Spørgsmål kan ikke åbnes igen, når de er lukket.

Metoden i http://www.eksperten.dk/faq#faq-5-3 har nogen gange været brugt til at håndtere sådanne problemer.
Avatar billede celal Nybegynder
11. april 2010 - 20:49 #12
Du kan hente pointene her fra:http://www.eksperten.dk/spm/906798
11. april 2010 - 22:03 #13
Jeg kan ikke naere mig for to kommentarer:

1.  celal, du er temmelig uforskammet!  Ja, det er frivilligt at reagere paa spoergsmaal, og jeg skal nok holde mig vaek fra fremtidige spoergsmaal fra dig for ikke at besvaere dig med at skulle lukke.  Eksperten stiller dette forum gratis til raadighed, saa det mindste man kan goere er at saette sig ind i og foelge regler og kotumer uanset om man er enig med disse.  Du sidder og rydder op i spoergsmaal fra de sidste to aar.  Du har altsaa forsoemt at lukke spoergsmaal undervejs og ladet en masse medlemmer blive haengende der frivilligt og gratis har proevet at hjaelpe dig.

2.  arne_v, tilbage til min kaephest:  Det kan Eksperten goere nemmere - ikke at lave to forskellige slags indlaeg.  Lad folk reagere paa spoergsmaal og lade spoergsmaalsstilleren direkte give points og lukke til indlaeg som han mener loeser problemet.  Hvem hjaelper man ved proceduren "Tak, det virkede, smid et svar?"  Du plejer at vaere uenig i dette mit synspunkt, men jeg har ikke forstaaet hvorfor.
Avatar billede arne_v Ekspert
11. april 2010 - 22:23 #14
Nu er problemet jo løst til alles tilfredshed. Så case closed fra min side af.
Avatar billede arne_v Ekspert
11. april 2010 - 22:28 #15
Re 2)

Så er jeg ikke så begejstret for "bare læg et svar og lad spørge acceptere eller afvise", fordi så er der en tendens til at spørgere accepterer det første der er lagt som svar fremfor den bedste løsning.

Jeg vil ikke afvise at kun en slags svar/kommentarer d.v.s. at spørger kan acceptere alt der bliver skrevet ville kunne fungere.
Avatar billede celal Nybegynder
11. april 2010 - 23:52 #16
Jeg forstår dig ikke, du får din vilje, jeg bruger tid på at gøre det godt igen, og så skal jeg høre en gang pis fra dig. Jeg har været bruger af experten i over 8 år, jeg har gennem tiden oprettet over 300 spørgsmål, hvor der er nogen af spørgsmålene som stadig er åbne og hvor jeg enda har skrevet at man skal smide et svar for at få point, men ikke har fået nogen reaktion, at jeg så har lukket nogle spørgsmål uden at spørge om man vil være så "flink" at svare så personen kan få nogen point af mig, ja men det er ikke verdens undergang. Det kan godt være at du giver eksperten skylden for at der ikke automatisk bliver lagt svar, men du er lige så skyldig, fordi du skriver svar ind som kommentar, så kig lidt på dig selv istedet for at syntes at alle Andre er nogle idioter. Systemet er som det er, så må du sgu bare smide et svar ind når det er et svar og ikke en kommentar. Men hvis du menner at dinne indlæg på mit spørgsmål kun er kommentar, så kan jeg ikke forstå du vil have point, for der bliver givet point for svar og ikke kommentar!!! Hvis jeg vidste at du ville reagere på den måde så havde jeg ikke gidet at bruge tid på dig! Og ja det er friviligt, og du behøver ikke svare, eller retter ligge kommentar ind på mine spørgsmål fremover!!!
Avatar billede arne_v Ekspert
12. april 2010 - 00:01 #17
øh

christian != mig
Avatar billede celal Nybegynder
12. april 2010 - 10:54 #18
Sorry arne_v, havde ikke lige set at Christian havde sneget sig ind der. Min fejl :o). Arne Glem min kommentar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester