Ciao, il corpo dell ' if non fa quello che dovrebbe; assegni ad a il reference di b (a e b si riferiscono entrambi a b) e subito dopo riassegni a b il reference di a , il quale ora si si riferisce a b (a e b si riferiscono entrambi ancora a b); quindi restituisci sempre b.
Se il tuo intento era scambiare a e b (non ho capito il motivo) allora devi usare una variabile di supporto:
public static int [] arrayMax(int[]a, int[]b){
if (a.length>b.length){
int [] temp = null;
temp = a;
a = b;
b = temp;
}
return b;
}
oppure più semplicemente:
public static int [] arrayMax(int[]a, int[]b){
if (a.length>b.length){
return a;
}
return b;
}