Sziasztok!
Egy kis segítségére volna szükségem, egy táblát szeretnék feltölteni adatbázisból egy kétdimenziós vektorral. Így:
double egy = 0; double ketto = 0; double harom = 0; int osszertek = 0; String nemtom = ""; try { conn = DriverManager.getConnection(url, username1, password1); stmt1 = conn.createStatement(); String sql1 = "select fo, osszOra, egysegar from letszam where munkaszam='" + munkaszam + "' and letszam='" + letszam + "'"; rs1 = stmt1.executeQuery(sql1); while (rs1.next()) { Vector<String> emp = new Vector<String>(); emp.add(letszam); emp.add(rs1.getString("fo")); emp.add(rs1.getString("osszOra")); emp.add(rs1.getString("egysegar")); egy = (Double.parseDouble(emp.elementAt(1).toString())); ketto = (Double.parseDouble(emp.elementAt(2).toString())); harom = (Double.parseDouble(emp.elementAt(3).toString())); osszertek = (int) (egy * ketto * harom); nemtom += osszertek; emp.add(nemtom); cont.vrDNYomtatasLetszam.add(emp); } } catch (SQLException ex) { ex.printStackTrace(); }
A problémám az, ha egy munkát kiválasztok és lefut ez a metódus, akkor jó fel is tölti a táblát, de ha másodjára is kiválasztom ugyan azt a munkát akkor a ugyan azokat az adatokat kétszer teszi bele, de ha egy másik munkát választok ki, akkor viszont jó ismét. Valahogyan üríteni szeretném a kétdimenziós vektort vagy az emp nevű vektor, de sehogyan sem sikerült. Sem a removeAllElemenets és a Clear-t is, de sajnos nem működnek. Tudnátok segíteni ebben?
Page
viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
3 Comments
Auth Gábor
Hm... ha jól értem, akkor a cont listába beleteszel egy emp listát, és ezt nevezed két dimenziós listának. A baj az, hogy ezt nem tudod üríteni?
Anonymous
Igen, a két dimneziós vektorom deklarálása egy másik osztályban van, a cont nevűben, mint
Vector<Vector<String>>
. Ezt a vektor feltöltöm egy másik vektorral az emp-vel és az emp vektor pedig adatbázisból kap adatokat. Igen az a baj, mert elszáll array index of bounds-al ha mondjuk itt ürítem:vrDNYomtatasLetszam
= new Vector<Vector<String>>
();emp.add(nemtom);
cont.vrDNYomtatasLetszam.add(emp);
Futó Tamás
Gondolom már megoldottad. Ha mégsem, másold be azt a bizonyos "másik" osztályt is, ami definiálja az adatszerkezeted. Sokat segítene.
Amúgy nem javasolt már a Vector osztályt használni. Elavult. Van helyette sok másik, korszerűbb implementáció. Általános feladatokra tökéletes az ArrayList.