Quote Originariamente inviata da andy_ Visualizza il messaggio
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;
    }
Innanzitutto scorrere gli elementi e poi, trovato l'elemento voluto, usare indexOf è parecchio .... molto "rozzo".
Tra l'altro, in questo caso non necessariamente devi usare per forza l'iteratore direttamente. Potresti anche usare il "for-each".
Il punto è che sarebbe meglio tenersi un indice .... non usare indexOf.
La questione di indexOf è che tira in ballo il concetto della uguaglianza tra oggetti Pubblicazione, ovvero se e come è stato definito il equals(), che nel caso della ricerca esplicita per titolo non c'entrerebbe nulla.

Quote Originariamente inviata da andy_ Visualizza il messaggio
codice:
    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;
    }

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;
    }
In questi non vedo nulla di intrinsecamente sbagliato.
Anzi, una cosa potrebbe essere dubbia: perché nel penultimo metodo (cerca) hai usato numRipiani mentre nell'ultimo metodo (rimuovi) hai usato contenuto.length?

Chiaramente non si riesce a vedere il contesto completo del codice ..... quindi potrebbero esserci altri problemi che non sono ora evidenti.