Ciao a tutti.
Dovrei realizzare la seguente cose utilizzando un array circolare FIFO di dimenzione 3 .
per realizzarlo ho attinto alla classe utilizzata in questo post
http://forum.html.it/forum/showthrea...rray+circolare
codice:
public class FIFO
{
private String array[];
private int in; //prossima posizione in ingresso
private int out; //prossima posizione in uscita
private int count; //contatore posizioni piene
private final int DIM; //dimensione array
public FIFO(int dimensione)
{
DIM = dimensione;
in=0;
out=0;
count=0;
array = new String[DIM]; //crea l'array
}
public boolean insert(String s)
{
if(count==DIM) //se la coda è piena
return false;
array[in] = new String(s); //inserisce la stringa in posizione in
count++; //incrementa il contatore di elementi
in = (in+1)%DIM; //incrementa la posizione di ingresso in modo circolare
return true;
}
public String extract() //restituisce un elemento, cancellandolo dalla coda
{
if(count==0) //se la coda è vuota
return null;
String risp = new String(array[out]);
count--;
out = (out+1)%DIM;
return risp;
}
public String toString() //restituisce la successione di elementi senza estrarli dall'array
{
if(count==0)
{
System.out.println("La CODA e' vuota!");
return null;
}
String risp = "";
int pos;
for(int i=0; i<count; i++)
{
pos = (out+i)%DIM;
risp = new String(risp+array[pos]);
}
//se è necessario svuotare l'array basta togliere il commento dal codice
/*
in=0;
out=0;
count=0;
*/
return risp;
}
}
Quello che voglio fare è la seguente:
IL Programma mi chiede se voglio inserire una lettrera > Se > la lettera è presente nell'array, manda un msg, ALTRIMENTI> La inserisce in cima all'array.
il file che cerca di realizzare ciò è
codice:
import PackageFIFO.*;
import java.io.*;
import prog.io.*;
public class ProvaFiFO {
public static void main(String[] args) {
ConsoleInputManager in= new ConsoleInputManager();
ConsoleInputManager inserisci= new ConsoleInputManager();
ConsoleOutputManager out= new ConsoleOutputManager();
FIFO a= new FIFO(3);
while (in.readSiNo("Inserisci altre lettere: ")){ //chiedo se si vogliono inserire altre lettere
String InserisciLettera= inserisci.readLine("Inserisci LA LETTERA : ");
for (int k=0; k<a.length; k++){ //scandisco l'array per vedere se esiste la lettera
if(a[k]==InserisciLettera)
System.out.println("lettera esistente");
else
a.insert(InserisciLettera);
}
}
}
}
l'errore che mi da è il seguente:
codice:
--------------------Configuration: <Default>--------------------
C:\Documents and Settings\All Users\Documenti\Programmazione\java\ProvaFiFO.java:28: cannot find symbol
symbol : variable length
location: class FIFO
for (int k=0; k<a.length; k++){ //scandisco l'array per vedere se esiste la lettera
^
C:\Documents and Settings\All Users\Documenti\Programmazione\java\ProvaFiFO.java:29: array required, but FIFO found
if(a[k]==InserisciLettera)
^
2 errors
Process completed.
Come posso sistemarlo?
Grazie