si,nel costruttore del consumatore naturalmente devo passare l'exchanger perciò ormai sono convinto che debbano esserci 7 exchangers,tuttavia io questi 4 oggetti li ho pensati come un vettore di capacità 4 ma ora non capisco come passare l'oggetto ai vari exchangers mi spiego :
io ho Exchanger<Integer>[] ex = new Exchanger[7]; int[] oggetto = new int[4];
l'exchanger scambia fra produttore e consumatore oggetto[i] per tanto ho fatto :

for(int i = 0 ; i < oggetto.length;i++) {
oggetto[i]=(int)(Math.random()*4+1);
oggetto[i] = ex[i].exchange(coppa[i]);
}

ma facendo così rimangono 3 exchangers che non fanno nulla. ovviamente scrivendo i<ex.length riceverei ArrayOutOfBoundsException, panico
p.s. grazie per il tempo che mi stai dedicando