PDA

Visualizza la versione completa : [JAVA] Costruzione di Array da resul.next()


olivs
02-07-2004, 09:40
Ciao come si fa in Java a costruire un array senza sapere quanti elementi potrÓ contenere?
Mi spiego meglio, dopo una query invece di buttare fuori i vari risultati in maniera canonica tipo id=rs.getInt("id");

vorrei avere una cosa del tipo id[i]=id=rs.getInt("id");
dove i Ŕ il numero che corrisponde al loop del ciclo while

caimano73
02-07-2004, 09:49
prova ad utilizzare un Vector: Ŕ una struttura dinamica e non deve essere inizializzato con il numero di elementi.

olivs
02-07-2004, 10:04
urca questo mi mancava ora cerco on-line la doc apposita

olivs
02-07-2004, 10:21
Dunque ho trovato questo codice:


Vector v = new Vector();

v.addElement("string 2");
v.addElement("string 4");
v.insertElementAt("string 1", 0);
v.insertElementAt("string 3", 2);
v.addElement("string 5");

for (int i=0; i<v.size(); i++) {
String s = (String) v.elementAt(i);
System.out.println(s);
}

while (!v.isEmpty()) {
String s = (String) v.removeElementAt(0);
System.out.println(s);
}

Ma compilato per JSP non funziona, mi sfugge qualcosa? :master: :master:

kateetak
02-07-2004, 11:03
Nella tua jsp hai inserito questa riga?

<%@ page import="java.util.Vector"%>

olivs
02-07-2004, 11:19
si certo ma mi da questo errore, visto che sono niubbo magari mi sono dimenticato qualcosa di fondamentale
[javac] Since fork is true, ignoring compiler setting.
[javac] Compiling 1 source file
[javac] Since fork is true, ignoring compiler setting.
[javac] /Library/Tomcat/work/Standalone/localhost/progetto/jsp/vector_jsp.java:115: inconvertible types
[javac] found : void
[javac] required: java.lang.String
[javac] String s = (String) v.removeElementAt(0);
[javac] ^
[javac] 1 error

kateetak
02-07-2004, 11:33
Non avevo guardato la documentazione.
Ti da l'errore che hai scritto perchŔ, come indicato dalla firma del metodo

public void removeElementAt(int index)

non ti viene restituito nulla mentre tu cerchi di ottenere un oggetto String.

Lucis
02-07-2004, 11:37
dalla javadoc:

void removeElementAt(int index)
Deletes the component at the specified index.

questo metodo non restituisce un oggetto, ma lo rimuove solamente, quindi l'istruzione

String s = (String) v.removeElementAt(0);
non Ŕ corretta :nonono:

:ciauz:

olivs
02-07-2004, 11:40
ma questo codice l'ho copiato paro paro da qui (http://www.cs.clemson.edu/~cs102/java/notes/Vector.html)
pensavo andasse bene giusto per capire come funziona questo vector, quindi devo togliere String e metterci int ???

kateetak
02-07-2004, 11:42
No.
Devi togliere String e non metterci nulla.
Il tuo ciclo diventa:



while (!v.isEmpty()) {
v.removeElementAt(0);
}


Fai sempre riferimento alla documentazione ufficiale:
http://java.sun.com/j2se/1.4.2/docs/api/

Loading