PDA

Visualizza la versione completa : [JAVA] Controllo sui vettori


Angemous
07-03-2006, 10:01
Devo acquisire un vettore di numeri reali e per ogni numero acquisito controllare che esso nn sia gièà presente nel vettore......COME FACCIO??

Aiutatemi!!!

paocat80
07-03-2006, 11:53
posso chiederti una cosa
nel caso dovessi trovare l'elemento cosa devi fare?

cmq alla fine secondo me dovresti fare
un ciclo for () per tutta la lunghezza del vettore
e all'interno un ciclo while che per ogni elemento del vettore
fa un controllo con il resto del vettore... ma dipende da quello che devi fare.....

per prelevare il numero dal vettore basta che fai un cast a stringa e poi lo trasformi in numero
es:
int num= Integer.parseint((String)vector.getValueAt(0))
prendi il primo elemento e lo trasformi in intero!!!


Lino

bobc
07-03-2006, 13:35
Se ho capito bene dovresti fare:
0.inizializza boolean esiste=false;
1.leggere numero da input
2.ciclo for (per indice che parte dall' inizio e arriva alla size del vettore)
3./*all'interno del for*/if(numeroInput==vettore[indice]){
esite=true;break;
}
4.se desideri aggiungere lo stesso il numero basta fare:
/*dopo il for*/
if(esiste==true){
vettore.add(numeroInput);
System.out.println(Il numero aggiunto ora era già contenuto);
else{
vettore.add(numeroInput);
System.out.println(Il numero aggiunto non c'era);
}
Se no:
if(esiste==true){
//non fare nulla
}
else{
vettore.add(numeroInput);
}

:bhò:

Angemous
07-03-2006, 15:33
Devo acquisire un vettore di numeri reali...ma nel caso viene inserito un numero già presente nel vettore comunicare errore...
GRAZIE

murder eyes
07-03-2006, 23:31
Originariamente inviato da Angemous
Devo acquisire un vettore di numeri reali...ma nel caso viene inserito un numero già presente nel vettore comunicare errore...
GRAZIE
Se utilizzi la classe Vector(in java.util) hai a disposizione il metodo contains() che torna true se l'elemento è già presente nel vettore; oppure c'è il metodo indexOf() che torna -1 se l'elemento non c'è oppure la posizione all'interno del vettore.

Se hai numeri reali comunque all'interno del Vector devi incapsularci i valori creando nuovi oggetti di tipo Double(e non double che è un tipo primitivo). Ogni volta che inserisci un numero puoi fare


Vector v=new Vector;
double valore=3.14;
v.add(new Double(valore));

LeleFT
08-03-2006, 14:56
Hai anche a disposizione la classe TreeSet che rappresenta un insieme: un insieme è per definizione composto da elementi tutti diversi tra di loro (non possono esserci elementi doppi). Qualsiasi tentativo di introdurre nell'insieme un elemento già presente fallisce.

Hai anche a disposizione le HashMap (per ricerche "dirette" e controllo doppioni), ma credo che siano un po' superflue per quel che devi fare.


Ciao. :ciauz:

Loading