Allora un pò di cose:
1) togli quei maledetti underscore dal nome delle variabili!

In java per convenzione il nome delle variabili si scrive con la prima lettera minuscola e con una maiuscola ogni parola. d esempio sarebbe nomeArticolo. In ruby invece si scriverebbe nome_articolo, anche se probabilmente non te ne frega niente

2) Passando tutto il vettore dei reparti alla classe Articolo stai violando il principio di encapsulation dato che l'articolo dovrebbe avere coscienza solo del reparto in cui è e non gliene frega niente del nome di tutti i reparti.
3) Per confrontare le stringhe in java non si puù usare == come hai giustamente notato, ma si deve usare il metodo .equals o .equalsIgnoreCase per confronti non case sensitive (ma non mi pare il tuo caso).
4) Nel costruttore non ti serve controllare se la classe è già stata inizializzata perchè esso viene invocat osolo la prima volta alla creazione dell'istanza. Quel controllo avrebbe senso solo quando si usa il Factory Pattern e qualche altro design pattern simile.
5) io chiamerei le variabili private direttamente nome, prezzo e quantità dato che aggiungere come suffisso Articolo è ridondante. Per l'inizializzazione in quel caso basterebbe scrivere nel costruttore:
Codice:
this.nome = nome;
this.prezzo = prezzo;
this.quantità = quantità;
6) dimmi che non ti sei generato i getter a mano perchè se usi Eclipse o Netbeans basta scegliere dal menu "generate getters/setters" e scegli quali getters o setters generarti per i vari field

7) Nell'equals non puoi concatenare gli operatori di confronto ma devi usare l'operatore &&, inoltre non hai utilizzato l'operatore di confronto (==) ma quello di assegnazione (=)
8) Nel toString puoi scrivere direttamente return "vattelapesca" + cazziemazzi + quellochevuoi senza crearti la variabile temporanea Risposta. E comunque le variabili vanno scritte con la prima iniziale minuscola e non maiuscola
mmm..
mi pare che x ora basti così...
sistema 'ste cose e poi vediamo se c'è altro.