Avatar billede trp79 Nybegynder
25. juni 2003 - 10:01 Der er 22 kommentarer og
1 løsning

Præsenterer data i html tabel udfra data i to klasser

Hejsa,
Jeg har et omsætnings-objekt og et budget objekt. Jeg gemmer instanser af disse i to arraylist's (omsListe & budgetListe).
Jeg genererer en html fil ud fra nogle oplysninger i disse objekter. Nogle oplysninger omkring budget og omsætning for et givet år stilles op i en tabel. Det er også fint nok så længe de to arraylister er lige lange og starter det samme år (se http://www.confunded.dk/TP/udskriv.html )
Men hvis der ikke er noget budget eller en omsætning et år, så er oplysninger jo ikke helt korrekte.

Hvordan får jeg repræsenteret alle data i min html tabel?
Hvis der ikke er en omsætning et år, med der er et budget kan omsætninger jo bare stå som "0".
Min ikke optimale kode ser således ud nu:

for(int j=0;j<omsListe.size();j++)
    {
        omsTemp = (Omsaetning)omsListe.get(j);
        budTemp = (Budget)budgetListe.get(j);
        if(omsTemp.getFirma().equals(firma))
        {
            outFile.println ("    <tr>");
            outFile.println ("      <td>"+omsTemp.getAar()+"</td>");
            outFile.println ("      <td>"+budTemp.getBudget()+"</td>");
            outFile.println ("      <td>"+omsTemp.getOms()+"</td>");
            outFile.println ("    </tr>");
            totalOms+=Integer.parseInt(omsTemp.getOms());
            totalBudget+=Integer.parseInt(budTemp.getBudget());
        }
        else{}
    }
Avatar billede magoo20000 Nybegynder
25. juni 2003 - 10:07 #1
Du kan jo kaste dig ud i noget Servlet og/eller JSP programmering.
En nem løsning ville være en Servlet, der bare skriver html'en ud, men det ville være en grim løsning, da det skaber en hånd kobling mellem funktions- og grænsefladelag. En MVF pattern med JSP og Servlet vil nok være den gode løsning, men det kræver en J2EE Container, der kan håndtere disse to(fx. Resin, BEA, JBoss eller ???).
Avatar billede magoo20000 Nybegynder
25. juni 2003 - 10:09 #2
Et simpelt eksempel:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class HTTPGetServlet extends HttpServlet {
  public void doGet( HttpServletRequest request,
                      HttpServletResponse response )
      throws ServletException, IOException
  {
      PrintWriter output;

      response.setContentType( "text/html" );  // content type
      output = response.getWriter();          // get writer 
      // create and send HTML page to client
      StringBuffer buf = new StringBuffer();
      buf.append( "<HTML><HEAD><TITLE>\n" );
      buf.append( "A Simple Servlet Example\n" );
      buf.append( "</TITLE></HEAD><BODY>\n" );
      buf.append( "<H1>Welcome to Servlets!</H1>\n" );
      buf.append( "</BODY></HTML>" );
      output.println( buf.toString() );
      output.close();    // close PrintWriter stream
  }
Og HTML'en
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Servlet HTTP GET Example</TITLE>
</HEAD>
<BODY>
<FORM ACTION="http://localhost:8080/servlet/HTTPGetServlet"
      METHOD="GET">
  <P>Click the button to have the servlet send an HTML document</P>
  <INPUT TYPE="submit" VALUE="Get HTML Document">
</FORM>
</BODY>
</HTML>
Avatar billede trp79 Nybegynder
25. juni 2003 - 10:11 #3
--> magoo2000
Nej det tror jeg at jeg holder mig fra... jeg ville blot finde en lidt smartere løsning end den jeg selv har lavet. Jeg har overhovedet ingen erfaringen med jsp eller servlet :o(
Avatar billede trp79 Nybegynder
25. juni 2003 - 10:15 #4
Min program er en stand-alone ting og html siden skal bare bruges for at lave de data der er i programmet udskrifts (fysisk på printer) venlige. JSP eller servlet kræver vel også lidt andet end JRE...

Jeg havde mere tænkt på om man ikke kunne lave et int oversigt[][] eller noget i den stil og så holde styr på de forskellige ting deri.
Avatar billede magoo20000 Nybegynder
25. juni 2003 - 10:16 #5
Ok.. Hmmm.. Ja så ved jeg ikke... Applet (men så er det jo ikke en HTML tabel) eller en Java Webservice (kræver også en J2EE server). En simpel Servlet og en Tomcat server er mit bud :-(
Avatar billede trp79 Nybegynder
25. juni 2003 - 10:18 #6
Okey, fair nok. Du får i hvert fald tak for dit forsøg :o)
Avatar billede magoo20000 Nybegynder
25. juni 2003 - 10:20 #7
JSP/Servlets bliver eksekveret på serversiden og resultatet sendes til den pågældende klient som f.eks. html. Det stiller ingen krav til klienterne (andet end en browser), men serveren skal have en JVM.
Dit stand-alone program skal på en eller anden måde holde styr på, hvilken klient, der lavede et request og skal derfor holde styr på, hvem, der skal have et svar tilbage. Det håndtere din servlet for dig.
Avatar billede magoo20000 Nybegynder
25. juni 2003 - 10:22 #8
Måske har jeg misforstået. Skal din app. bare åbne en browser og vise et resultat? Ingen nætværkskommunikation?
Avatar billede trp79 Nybegynder
25. juni 2003 - 10:31 #9
ja så tror jeg at vi har misforstået hinanden.
Jeg er ved at lave en klasse som præsenterer data i et html dokument, for at gøre det (data) udskriftvenligt (til en fysisk printer).

Mit problem er så at jeg har to arraylister: omsListe og budgetListe. De to lister består af henholdsvis omsaetningsobjekter og budgetobjekter.
Et omsaetningsobjekt består af:
(String aar, Firma firma, String oms, String oprettet) og et budgetobjekt består af:
(String aar, Firma firma, String budget, String oprettet)

Mit problem er så ved overstående (det der er i selve oprettelsen af spg) kode, at hvis et firma et givet år har et budget men ikke en omsætning eller omvendt, så bliver alle dataene eller nogen af dem ikke præsenteret (alt efter om det er en omsætning eller et budget der mangler). Har firmaet lige mange budgetter og omsætninger er det fint (hvis de selvfølgelig er fra det samme år - som i det link jeg postede).

Håber det giver lidt mere klarhed? :o)
Jeg poster lige hele min klasse.
Avatar billede arne_v Ekspert
25. juni 2003 - 10:33 #10
Jeg tror nøglen til løsningen ligger der hvor data puttes ind
i de to ArrayList.


Hvis du sikrer dig at:
  * element N i den ene ArrayList svarer tidsmæssigt til element N i
    den anden ArrayList (det har som side effect at de får samme længde)
  * gemmer null i ArrayList når der mangler data

Så er det jo nemt:

if(element != null) {
  outFile.println ("      <td>" + element.getXxxx() + "</td>");
} else {
  outFile.println ("      <td>-</td>");
}

[eller noget lignende]
Avatar billede trp79 Nybegynder
25. juni 2003 - 10:33 #11
Så nej det har slet ikke noget med netværkskommunikation at gøre..

her kommer klassen:

import java.io.*;
import java.util.*;
import java.text.*;

public class Print implements Serializable
{

    String navn;
    String statusHentFirma="";
    String statusHentKP="";
    String statusHentOms="";
    String statusHentBudget="";
    int totalBudget = 0;
    int totalOms = 0;
    List kundeListe = new ArrayList();
    DateFormat df = new SimpleDateFormat("MMM-yyyy");
    Date d;
    Omsaetning omsTemp;
    Budget budTemp;

    public Print()
    {
    }

    public void udskrivFInfo(PrintWriter outFile, String firma, String adr1, String adr2, String adr3, String tlf, String fax, String email, String by, String oprettet, String noter, ArrayList omsListe, ArrayList budgetListe, boolean budgetoms) throws IOException
    {
        outFile.println("<html>");
        outFile.println("<head>");
        outFile.println("<title>Udskrivning af Firma-info</title>");
        outFile.println("<style type=\"text/css\">");
        outFile.println("<!--");
        outFile.println("#infoboks td {");
            outFile.println("font-size: 12px;");
            outFile.println("background-color: #FFFFFF;");
            outFile.println("font-family: Arial, Helvetica, sans-serif;");
            outFile.println("padding: 1px;");
            outFile.println("text-align: left;");
            outFile.println("vertical-align: top;");
        outFile.println("}");
        outFile.println("body {");
            outFile.println("font-family: Arial, Helvetica, sans-serif;");
        outFile.println("}");
        outFile.println("-->");
        outFile.println("</style>");
        outFile.println("</head>");
        outFile.println("<body>");
        //while ((line=inFile.readLine())!=null)
        //     {
                outFile.println ("<h2>"+firma+"</h2>"); // skriver linjerne ud til filen
                outFile.println ("<table width=\"439\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#000000\">");
                outFile.println ("    <tr>");
                outFile.println ("    <td><table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" id=\"infoboks\">");
                    outFile.println ("    <tr>");
                    outFile.println ("      <td width=\"21%\">Adr. 1:</td>");
                    outFile.println ("      <td width=\"79%\">"+adr1+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Adr. 2:</td>");
                    outFile.println ("        <td>"+adr2+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Adr. 3:</td>");
                    outFile.println ("        <td>"+adr3+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Tlf:</td>");
                    outFile.println ("        <td>"+tlf+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Fax:</td>");
                    outFile.println ("        <td>"+fax+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Email:</td>");
                    outFile.println ("        <td>"+email+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Hjemmeside:</td>");
                    outFile.println ("        <td>"+by+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Oprettet:</td>");
                    outFile.println ("        <td>"+oprettet+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Noter:</td>");
                    outFile.println ("        <td>"+noter+"</td>");
                    outFile.println ("    </tr>");

                    if(budgetoms)
                    {
                        outFile.println ("     <tr>");
                        outFile.println ("        <td>Budgetter & omsætninger:</td>");
                            outFile.println ("        <td>");
                                    outFile.println ("<table width=\"200\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#000000\">");
                                    outFile.println ("    <tr>");
                                    outFile.println ("    <td><table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"1\" id=\"infoboks\">");
                                        outFile.println ("    <tr>");
                                        outFile.println ("      <td width=\"20%\">&nbsp;</td>");
                                        outFile.println ("      <td width=\"40%\">"+"Budget"+"</td>");
                                        outFile.println ("      <td width=\"40%\">"+"Omsætning"+"</td>");
                                        outFile.println ("    </tr>");

                                        for(int j=0;j<omsListe.size();j++)
                                            {
                                                omsTemp = (Omsaetning)omsListe.get(j);
                                                budTemp = (Budget)budgetListe.get(j);
                                                if(omsTemp.getFirma().equals(firma))
                                                {
                                                    outFile.println ("    <tr>");
                                                    outFile.println ("      <td>"+omsTemp.getAar()+"</td>");
                                                    outFile.println ("      <td>"+budTemp.getBudget()+"</td>");
                                                    outFile.println ("      <td>"+omsTemp.getOms()+"</td>");
                                                    outFile.println ("    </tr>");
                                                    totalOms+=Integer.parseInt(omsTemp.getOms());
                                                    totalBudget+=Integer.parseInt(budTemp.getBudget());
                                                }
                                                else{}
                                            }


                                                    outFile.println ("    <tr>");
                                                    outFile.println ("      <td>"+"Ialt"+"</td>");
                                                    outFile.println ("      <td>"+totalBudget+"</td>");
                                                    outFile.println ("      <td>"+totalOms+"</td>");
                                                    outFile.println ("    </tr>");
                                        outFile.println ("</table></td>");
                                      outFile.println ("    </tr>");
                                      outFile.println ("</table>");
                              outFile.println ("        </td>");
                        outFile.println ("        <td>");
                        outFile.println ("    </tr>");
                    }
                    else{}
                    outFile.println ("</table></td>");
                    outFile.println ("</tr>");
                outFile.println ("</table>");


        //      }
        outFile.println("</body>");
        outFile.println("</html>");
        outFile.close();
    }
}
Avatar billede arne_v Ekspert
25. juni 2003 - 10:39 #12
Hvis det er svært at få gemt i ArrayList på den måde, så kan du
evt. gemme i HashMap i stedetfor og så bruge år som key.

Så får du "automatisk" null når der ikke er data.
Avatar billede arne_v Ekspert
25. juni 2003 - 10:39 #13
Eller snakker jeg sort ?
Avatar billede trp79 Nybegynder
25. juni 2003 - 10:45 #14
--> Arne
Nope, du har lige givet mig en ide :o) Jeg kender godt nok ikke HashMap, men tænkte på at man kunne lave:
int o = omsListe.size();
int b = budgetListe.size();
int counter = 0;

Herefter kunne man jo lave en forløkke, der gennemgår den største af de to lister og løbende sammenligner året i den ene liste med året i den anden. og så længe det ene år er mindre i den ene end den anden skal de skrive det mindste år. counter vil jeg så bruge til at holde styr på hvor langt jeg er kommet i den mindste arraylist. Det skal lige siges at de to arraylister er sorteret!. Kan du følge mig og burde man ikke kunne lave det på den måde, eller er det langt lettere med en HashMap?
Avatar billede arne_v Ekspert
25. juni 2003 - 10:54 #15
Det tror jeg godt at du kan få til at fungere, hvis
objekterne i begge lister indeholder år (har en getAar/getYear metode).

Men det vil kræve lidt kode.

Det vil hjælpe lidt hvis du på forhånd ved hvilken ArrayList der har
det første år.

Og det vil hjælpe endnu mere hvis du ved at den ene er et superset
af den anden (d.v.s. at den anden ikke har nogle år som den første ikke
har).
Avatar billede arne_v Ekspert
25. juni 2003 - 10:56 #16
En HashMap er ofte en bekvem struktur.

HashMap hm = new HashMap();
hm.put(new Integer(2001), o2001);
hm.put(new Integer(2002), o2002);

hm.get(new Integer(2002)) returnerer så o20002 og
hm.get(new Integer(2003)) returnerer så null
Avatar billede trp79 Nybegynder
25. juni 2003 - 11:03 #17
Okey, det vil jeg prøve så. Først smider jeg smider jeg altså alle omsætninger og alle budgetter i to forskellige hashmaps. Derefter kan jeg så sammenligne dem som du snakkede om 25/06-2003 10:33:25.
Avatar billede arne_v Ekspert
25. juni 2003 - 11:20 #18
Jeg tror det kan laves ret simpelt.

for(int y = startyear; y <= endyear; y++) {
  Omsaetning oms = (Omsaetning)omsmap.get(new Integer(y));
  Budget bud = (Budget)budmap.get(new Integer(y));
  if(oms != null) {
      ...
  }
  if(bud != null) {
      ...
  }
}
Avatar billede trp79 Nybegynder
25. juni 2003 - 12:41 #19
Tak for hjælpen Arne, det virker nu :o) Hvis du lige er flink og smide et svar.

Således kom koden til at se ud, det er nok ikke den mest optimale men det virker efter hensigten :o)

import java.io.*;
import java.util.*;
import java.text.*;

public class Print implements Serializable
{

    String navn;
    String statusHentFirma="";
    String statusHentKP="";
    String statusHentOms="";
    String statusHentBudget="";
    int totalBudget = 0;
    int totalOms = 0;
    List kundeListe = new ArrayList();
    DateFormat df = new SimpleDateFormat("MMM-yyyy");
    Date d;
    Omsaetning omsTemp;
    Budget budTemp;

    public Print()
    {
    }

    public void udskrivFInfo(PrintWriter outFile, String firma, String adr1, String adr2, String adr3, String tlf, String fax, String email, String by, String oprettet, String noter, ArrayList omsListe, ArrayList budgetListe, boolean budgetoms) throws IOException
    {
        outFile.println("<html>");
        outFile.println("<head>");
        outFile.println("<title>Udskrivning af Firma-info</title>");
        outFile.println("<style type=\"text/css\">");
        outFile.println("<!--");
        outFile.println("#infoboks td {");
            outFile.println("font-size: 12px;");
            outFile.println("background-color: #FFFFFF;");
            outFile.println("font-family: Arial, Helvetica, sans-serif;");
            outFile.println("padding: 1px;");
            outFile.println("text-align: left;");
            outFile.println("vertical-align: top;");
        outFile.println("}");
        outFile.println("body {");
            outFile.println("font-family: Arial, Helvetica, sans-serif;");
        outFile.println("}");
        outFile.println("-->");
        outFile.println("</style>");
        outFile.println("</head>");
        outFile.println("<body>");
        //while ((line=inFile.readLine())!=null)
        //     {
                outFile.println ("<h2>"+firma+"</h2>"); // skriver linjerne ud til filen
                outFile.println ("<table width=\"439\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#000000\">");
                outFile.println ("    <tr>");
                outFile.println ("    <td><table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\" id=\"infoboks\">");
                    outFile.println ("    <tr>");
                    outFile.println ("      <td width=\"21%\">Adr. 1:</td>");
                    outFile.println ("      <td width=\"79%\">"+adr1+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Adr. 2:</td>");
                    outFile.println ("        <td>"+adr2+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Adr. 3:</td>");
                    outFile.println ("        <td>"+adr3+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Tlf:</td>");
                    outFile.println ("        <td>"+tlf+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Fax:</td>");
                    outFile.println ("        <td>"+fax+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Email:</td>");
                    outFile.println ("        <td>"+email+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Hjemmeside:</td>");
                    outFile.println ("        <td>"+by+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Oprettet:</td>");
                    outFile.println ("        <td>"+oprettet+"</td>");
                    outFile.println ("    </tr>");

                    outFile.println ("     <tr>");
                    outFile.println ("        <td>Noter:</td>");
                    outFile.println ("        <td>"+noter+"</td>");
                    outFile.println ("    </tr>");

                    if(budgetoms)
                    {
                        outFile.println ("     <tr>");
                        outFile.println ("        <td>Budgetter & omsætninger:</td>");
                            outFile.println ("        <td>");
                                    outFile.println ("<table width=\"200\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#000000\">");
                                    outFile.println ("    <tr>");
                                    outFile.println ("    <td><table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"1\" id=\"infoboks\">");
                                        outFile.println ("    <tr>");
                                        outFile.println ("      <td width=\"20%\">&nbsp;</td>");
                                        outFile.println ("      <td width=\"40%\">"+"Budget"+"</td>");
                                        outFile.println ("      <td width=\"40%\">"+"Omsætning"+"</td>");
                                        outFile.println ("    </tr>");

                                            HashMap omsHMap = getHashMapOms(omsListe, firma);
                                            HashMap budgetHMap = getHashMapBudget(budgetListe, firma);

                                            for(int y = getStartAar(omsListe, budgetListe, firma); y <= getSlutAar(omsListe, budgetListe, firma); y++)
                                            {
                                              Omsaetning oms = (Omsaetning)omsHMap.get(new Integer(y));
                                              Budget bud = (Budget)budgetHMap.get(new Integer(y));
                                              outFile.println ("    <tr>");
                                                outFile.println ("      <td>"+y+"</td>");
                                              if(bud != null)
                                              {
                                                outFile.println ("      <td>"+bud.getBudget()+"</td>");
                                              }
                                              if(bud == null)
                                              {
                                                outFile.println ("      <td>"+"intet"+"</td>");
                                              }
                                              if(oms != null)
                                              {
                                                outFile.println ("      <td>"+oms.getOms()+"</td>");
                                              }
                                              if(oms == null)
                                              {
                                                outFile.println ("      <td>"+"intet"+"</td>");
                                              }
                                              outFile.println ("    </tr>");
                                            }

                                                    outFile.println ("    <tr>");
                                                    outFile.println ("      <td>"+"Ialt"+"</td>");
                                                    outFile.println ("      <td>"+totalBudget+"</td>");
                                                    outFile.println ("      <td>"+totalOms+"</td>");
                                                    outFile.println ("    </tr>");
                                        outFile.println ("</table></td>");
                                      outFile.println ("    </tr>");
                                      outFile.println ("</table>");
                              outFile.println ("        </td>");
                        outFile.println ("        <td>");
                        outFile.println ("    </tr>");
                    }
                    else{}
                    outFile.println ("</table></td>");
                    outFile.println ("</tr>");
                outFile.println ("</table>");


        //      }
        outFile.println("</body>");
        outFile.println("</html>");
        outFile.close();
    }

    public HashMap getHashMapOms(ArrayList omsListe, String firma)
    {
        Omsaetning temp;
        HashMap hm = new HashMap();
        for(int j=0;j<omsListe.size();j++)
        {
            temp = (Omsaetning)omsListe.get(j);
            if(temp.getFirma().equals(firma))
            hm.put(new Integer(temp.getAar()), temp);
        }
        return hm;
    }

    public HashMap getHashMapBudget(ArrayList budgetListe, String firma)
    {
        Budget temp;
        HashMap hm = new HashMap();
        for(int j=0;j<budgetListe.size();j++)
        {
            temp = (Budget)budgetListe.get(j);
            if(temp.getFirma().equals(firma))
            hm.put(new Integer(temp.getAar()), temp);
        }
        return hm;
    }

    public int getStartAar(ArrayList omsListe, ArrayList budgetListe, String firma)
    {
        int oms = -1;
        int bud = -1;

        Omsaetning oTemp;
        for (int i=0;i<omsListe.size();i++)
        {
            oTemp = (Omsaetning)omsListe.get(i);
            if(oTemp.getFirma().equals(firma))
            {
                oms = Integer.parseInt(oTemp.getAar());
                break;
            }
        }

        Budget bTemp;
        for (int j=0;j<budgetListe.size();j++)
        {
            bTemp = (Budget)budgetListe.get(j);
            if(bTemp.getFirma().equals(firma))
            {
                bud = Integer.parseInt(bTemp.getAar());
                break;
            }
        }

        if(oms<bud)
            return oms;
        else return bud;
    }

    public int getSlutAar(ArrayList omsListe, ArrayList budgetListe, String firma)
    {
        int oms = -1;
        int bud = -1;

        Omsaetning oTemp;
        for (int i=omsListe.size()-1; i>=0; i--)
        {
            oTemp = (Omsaetning)omsListe.get(i);
            if(oTemp.getFirma().equals(firma))
            {
                oms = Integer.parseInt(oTemp.getAar());
                break;
            }
        }

        Budget bTemp;
        for (int j=budgetListe.size()-1; j>=0; j--)
        {
            bTemp = (Budget)budgetListe.get(j);
            if(bTemp.getFirma().equals(firma))
            {
                bud = Integer.parseInt(bTemp.getAar());
                break;
            }
        }

        if(oms<bud)
            return oms;
        else return bud;
    }

}

Resultatet kan ses her: http://www.confunded.dk/TP/udskriv.html

Tak for hjælpen, mvh
Torben
Avatar billede arne_v Ekspert
25. juni 2003 - 12:47 #20
svar
Avatar billede arne_v Ekspert
25. juni 2003 - 12:52 #21
Jeg tror at din kode kunne krympes lidt ved at ligge
find start og slut sammen med konvertering fra ArrayList
til HashMap. Der har du jo allerede fat i alle elementer.
Avatar billede trp79 Nybegynder
25. juni 2003 - 12:57 #22
ja det er da "åndsvagt" at løbe listerne igennem flere gange end nødvendigt..
ændringer er på vej... :)
Avatar billede arne_v Ekspert
25. juni 2003 - 13:11 #23
Det kan gøres på mange måder.

En af dem var at encapsulate:

public class Oms() {
  private HashMap data;
  private int start;
  private int end;
  public OmsaetningMap() {
      data = new HashMap();
      start = 9999;
      end = 0;
  }
  public void put(Omsaetning oms) {
      int y = oms.getAar();
      data.put(new Integer(y), oms);
      if(y < start) start = y;
      if(y > end) end = y;
  }
  public Omsaetning get(int y) {
      return (Omsaetning)data.get(new Integer(y));
  }
  public int getStart() {
      return start;
  }
  public int getEnd() {
      return end;
  }
}

men det kan gøres på mange andre måder.
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