Salve, devo fare un programma che simula uno scaffale composto da vari ripiani.
Deve essere possibile inserire un libro nel primo scaffale abbastanza libero da contenerlo, rimuovere un libro ed avere in output da dove è stato tolto, cercare un libro e vedere dov'è. Ho però dei problemi con la ricerca e la rimozione (non funzionano).
Nella classe ripiano le due funzioni le ho fatte cosi:
codice:
public int cerca(String titolo)
{
Iterator<Pubblicazione> it=contenuto.iterator();
while(it.hasNext())
{
Pubblicazione tmp=it.next();
if(titolo.equals(tmp.getTitolo()))
{
return contenuto.indexOf(tmp);
}
}
return -1;
}
public int rimuovi(String titolo)
{
for(int i=0;i<contenuto.size();i++)
{
Pubblicazione pubblicazione=contenuto.get(i);
if(titolo.equals(pubblicazione.getTitolo()))
{
contenuto.remove(i);
this.spazioDisponibile=+pubblicazione.getSpessore();
return i;
}
}
return -1;
}
in quella scaffale cosi:
codice:
public Posizione cerca(String titolo)
{
for(int i=0;i<numRipiani;i++)
{
int j=this.contenuto[i].cerca(titolo);
if(j!=-1)
{
return new Posizione(i,j);
}
}
return null;
}
public Posizione rimuovi(String titolo)
{
for(int i=0;i<contenuto.length;i++)
{
int j=contenuto[i].rimuovi(titolo);
if(j!=-1)
{
return new Posizione(i,j);
}
}
return null;
}
dove Posizione ha due variabile, una per il numero di ripiano, una per il numero di pubblicazione.
C'è qualcosa che non va??